2009-02-24 4 views
5

Ich habe ein Programm in Eclipse IDE geschrieben, das die BouncyProvider-Klasse von BouncyCastle.jar verwendet. Um meine Klasse zu kompilieren, habe ich BouncyCastle.jar in meinen Projekt-Klassenpfad eingefügt und kompiliert perfekt.wie externe jar auszuschließen, während ausführbare jar in eclipse oder commandline erstellen?

Jetzt möchte ich mein Projekt als ausführbare JAR exportieren, also wenn ich das von Eclipse mache, fügt es standardmäßig die Klassen von BouncyCastle.jar auch in diesem ausführbaren Jar hinzu.

Aber ich möchte meine Anwendung Jar und BouncyCastle.jar voneinander unterscheiden.

Wie kann ich das erreichen? Kann mir bitte jemand helfen?

Antwort

1

Leider sieht das so aus, als könnten Sie das nicht tun. Ein JAR kann kein anderes JAR verwenden, das in sich selbst gespeichert ist.

würde ich sagen, wenn Sie einen wirklich guten Grund haben, warum Sie nicht Ihre BouncyCastle.jar entpacken (wie vielleicht Lizenzierung Probleme?)

lass es einfach entpacken (was Sie tun können, BouncyCastle durch Hinzufügen .jar als externes Archiv in Eclipse :)

und beobachten Sie Ihre Paketnamen für Konflikte.

Here's an open Java bug ID I found describing your situation

One-JAR may help - a open source solution to your situation

+0

Man würde annehmen, die OP hinzugefügt wollen zwei separate Gläser haben, mit der Anwendung Glas in das Gefäß BouncyCastle Bezug über die Classpath-Direktive im Manifest. –

3

Es klingt wie Sie die "Export JAR-Datei" Assistenten anstelle der "Export Runnable JAR-Datei" Assistenten verwenden möchten. Beim Exportieren einer JAR-Datei Runnable versucht Eclipse, alles zu packen, was zum Ausführen der Anwendung in einem einzigen Archiv benötigt wird. Auf der anderen Seite gibt Ihnen der Assistent "JAR-Datei exportieren" mehr Kontrolle darüber, was im Archiv gepackt ist. Sie können weiterhin eine ausführbare JAR-Datei erstellen, Sie müssen jedoch sicherstellen, dass BouncyCastle.jar beim Ausführen des JARs in den Klassenpfad eingeschlossen wird. Hier sind Schritt-für-Schritt-Anweisungen:

  1. Klicken Sie auf "Datei | Exportieren". Der Export-Dialog erscheint.
  2. Erweitern Sie den Ordner "Java" und wählen Sie "JAR-Datei" (nicht "Runnable JAR Datei"). Weiter klicken. Auf der JAR-Datei Spezifikation Seite, wählen Sie die Klassen, die Sie in dem Glas Datei enthalten sein sollen, und den Namen der JAR-Datei angeben zu erstellen. Weiter klicken.
  3. Wählen Sie auf der Seite JAR-Verpackungsoptionen die für Sie geeigneten Optionen aus. Die Standardeinstellungen sind wahrscheinlich in Ordnung. Klicken Sie auf Weiter.
  4. In der JAR-Manifest-Spezifikation, stellen Sie sicher, dass Sie die "Hauptklasse" für Ihre JAR-Datei auswählen. Dies ist die Klasse, die ausgeführt wird, wenn Sie die JAR-Datei ausführen. Wenn Sie dieses Feld leer lassen, wird die JAR-Datei nicht runnable. Klicken Sie auf Fertig stellen, um die JAR-Datei zu erstellen.

Sie sollten in der Lage sein, die JAR-Datei auszuführen, indem "java -jar myjarfile.jar -classpath BouncyCastle.jar" von einer Befehlszeile ausgeführt wird.

0

Es sieht aus wie dies in Eclipse 3.5 Milestone 5. Siehe News für die neueste und bug 219530