Eclipse: Wie erstelle ich ein ausführbares Glas mit einem externen Glas?

Ich versuche ein ausführbares jar-Programm zu erstellen, das von extern heruntergeladenen jar abhängt. In meinem Projekt habe ich sie in den Build-Pfad aufgenommen und kann sie in Eclipse ausführen und debuggen.

Wenn ich versuchte, es in ein Jar zu exportieren, kann ich das Programm ausführen, aber ich kann nicht, wenn ich versuche, eine Taste zu drücken, die functionsaufrufe und classn aus dem externen Jar enthält. Ich habe die Umgebungsvariablen (Windows XP) CLASSPATH bearbeitet, um die Pfade aller externen jars einzuschließen, aber es funktioniert nicht.

Ein Punkt zu beachten ist, dass ich kompilierte Warnungen während des Exportierens meiner ausführbaren Jar, aber es keine Beschreibung der Warnungen angezeigt wird.

Würde jemand freundlicherweise eine gründliche Anleitung zur Einbindung eines externen Jar-Programms mit Eclipse geben?

Eclipse 3.5 verfügt über eine Option, um erforderliche Bibliotheken in das ausführbare Jar zu packen. Datei -> Exportieren … Wählen Sie Runnable Jar und klicken Sie auf Weiter. Das ausführbare JAR-Exportfenster verfügt über eine Optionsschaltfläche, über die Sie die erforderlichen Bibliotheken in das JAR-Paket packen können.

Sie können dies tun, indem Sie ein Manifest für Ihr Glas schreiben . Sehen Sie sich den Class-Path- Header an. Eclipse hat eine Option, um beim Export ein eigenes Manifest auszuwählen.

Die Alternative besteht darin, die Abhängigkeit zum classnpfad zum Zeitpunkt des Aufrufs der Anwendung hinzuzufügen:

win32: java.exe -cp app.jar;dependency.jar foo.MyMainClass *nix: java -cp app.jar:dependency.jar foo.MyMainClass 

Wie man die Gläser Ihres Projektes in Ihr lauffähiges Glas einschließt:

Ich benutze Eclipse Version: 3.7.2 unter Ubuntu 12.10. Ich werde Ihnen auch zeigen, wie Sie die build.xml damit Sie das ant jar über die Befehlszeile build.xml und Ihr jar zusammen mit anderen importierten build.xml erstellen können.

Im Grunde bitten Sie Eclipse, die Datei build.xml zu erstellen, die Ihre Bibliotheken für Sie in Ihr jar importiert.

  1. Starten Sie Eclipse und erstellen Sie ein neues Java-Projekt, erstellen Sie ein neues Paket ‘mypackage’, fügen Sie Ihre Hauptklasse hinzu: Runner Fügen Sie diesen Code dort ein.

    Bildbeschreibung hier eingeben

  2. mysql-connector-java-5.1.28-bin.jar nun die mysql-connector-java-5.1.28-bin.jar von Oracle hinzu , mit der wir Java schreiben können, um eine Verbindung zur MySQL-database mysql-connector-java-5.1.28-bin.jar . Klicke dazu mit der rechten Maustaste auf das Projekt -> Eigenschaften -> Java-Buildpfad -> Externes Glas hinzufügen -> Wähle mysql-connector-java-5.1.28-bin.jar.

  3. Führen Sie das Programm in Eclipse aus, es sollte ausgeführt werden und Ihnen mitteilen, dass der Benutzername / das Passwort ungültig ist, was bedeutet, dass Eclipse ordnungsgemäß mit dem Jar konfiguriert ist.

  4. In Eclipse gehen Sie zu File -> Export -> Java -> Runnable Jar File . Sie werden diesen Dialog sehen:

    Bildbeschreibung hier eingeben

    Stellen Sie sicher, dass das Kontrollkästchen “Als Skript speichern” aktiviert ist. Das macht es so, dass du später mit der Kommandozeile ein ant jar kannst.

  5. Dann geh zum Terminal und sieh dir das Ameisenskript an:

    Bildbeschreibung hier eingeben

Sie sehen also, ich habe das jar ausgeführt und es ist kein Fehler mysql-connector-java-5.1.28-bin.jar , weil es den enthaltenen mysql-connector-java-5.1.28-bin.jar in Hello.jar eingebettet Hello.jar .

Schauen Sie in Hello.jar: vi Hello.jar und Sie werden viele Verweise auf com/mysql/jdbc/stuff.class

So führen Sie das ant jar auf der buildant.xml automatisch aus: buildant.xml build.xml buildant.xml in build.xml und ändern Sie den create_run_jar von create_run_jar in jar .

Dann MyProject Sie in MyProject ant jar und boom ein. Sie haben Ihr Glas in MyProject. Und Sie können es mit java -jar Hello.jar und alles funktioniert.

Als eine gute Übung können Sie ein Ant-Skript verwenden (Eclipse wird mitgeliefert), um Ihre JAR-Datei zu generieren. In diesem JAR können Sie alle abhängigen Bibliotheken haben.

Sie können sogar den Header des classnpfads von MANIFEST so einstellen, dass er auf Dateien in Ihrem Dateisystem zeigt, aber das ist keine gute Übung.

Ant build.xml Skript Beispiel:

                                 

Probieren Sie die Fettzange aus. Es enthält alle externen Gläser im Glas.

Siehe @ java-jar-ignores-classpath-Umgehung