5 Stimmen

wie externe jar während der Erstellung ausführbare jar in Eclipse oder Befehlszeile auszuschließen?

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 meinem Projekt-Klassenpfad hinzugefügt und es kompiliert perfekt.

Jetzt möchte ich mein Projekt als Runnable JAR exportieren, so dass, wenn ich das von Eclipse aus tue, es standardmäßig die Klassen von BouncyCastle.jar auch in diesem runnable jar hinzufügt.

Aber ich möchte mein Anwendungs-Jar und BouncyCastle.jar voneinander getrennt halten.

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

3voto

ThisIsTheDave Punkte 1007

Es klingt, als ob Sie den Assistenten "JAR-Datei exportieren" anstelle des Assistenten "Lauffähige JAR-Datei exportieren" verwenden möchten. Beim Exportieren einer lauffähig jar-Datei versucht Eclipse, alles, was zur Ausführung der Anwendung benötigt wird, in ein einziges Archiv zu packen. Mit dem Assistenten "JAR-Datei exportieren" haben Sie dagegen mehr Kontrolle darüber, was in das Archiv gepackt wird. Sie können immer noch eine lauffähige JAR-Datei erstellen, aber Sie müssen sicherstellen, dass BouncyCastle.jar in den Klassenpfad aufgenommen wird, wenn Sie die JAR-Datei ausführen. Hier finden Sie eine schrittweise Anleitung:

  1. Klicken Sie auf "Datei | Exportieren". Der Export öffnet sich.
  2. Erweitern Sie den Ordner "Java" und wählen Sie "JAR-Datei" (nicht "Lauffähige JAR Datei"). Klicken Sie auf Weiter. Auf der Seite JAR-Datei Spezifikationsseite, wählen Sie die Klassen, die in der JAR-Datei enthalten sein sollen Datei enthalten sein sollen, und geben Sie den Namen der JAR-Datei an, die erstellt werden soll. Klicken Sie auf Weiter.
  3. Auf der Seite JAR-Paketierungsoptionen, wählen Sie 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 leer lassen, wird die jar-Datei nicht ausführbar sein . Klicken Sie auf Fertigstellen, um um die jar-Datei zu erstellen.

Sie sollten in der Lage sein, die jar-Datei auszuführen, indem Sie den Befehl " java -jar myjarfile.jar -classpath BouncyCastle.jar " aus einer Befehlszeile.

1voto

brabster Punkte 41159

Leider sieht es so aus, als ob Sie das nicht tun können. Ein JAR kann kein anderes JAR verwenden, das in ihm selbst gespeichert ist.

Ich würde sagen, wenn Sie nicht einen wirklich triftigen Grund haben, warum Sie Ihre BouncyCastle.jar nicht entpacken können (wie z.B. Lizenzierungsprobleme?)

lassen Sie es einfach entpacken (was Sie tun können, indem Sie BouncyCastle.jar als externes Archiv in Eclipse hinzufügen:)

Right-click on your project
Build Path...
Add External Archives...
Add your archive
Export as runnable JAR)

und beobachten Sie Ihre Paketnamen auf Konflikte.

Hier ist eine offene Java-Fehler-ID, die ich gefunden habe und die Ihre Situation beschreibt

One-JAR kann helfen - eine Open-Source-Lösung für Ihre Situation

0voto

Mark Punkte 28072

Es sieht so aus, als sei dies in Eclipse 3.5 Milestone 5 hinzugefügt worden. Siehe die Nachrichten für die neueste Version und Wanze 219530

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X