2015-07-27 17 views
9

finden oder laden Ich habe ein JavaFX Projekt erstellt und bin in der Lage mit dem BefehlJavapackager: Kann Hauptklasse

java -classpath [very-long-list-of-class-paths] danIDE.Main

jedoch laufen, wenn ich versuche, javapackager zu verwenden, um ein Glas aus ihm zu schaffen und laufen mit java -jar out.jar, sagt die Aufforderung Error: Could not find or load main class danIDE.Main

der Befehl, den ich verwendet, um das Glas zu erstellen ist

javapackager -createjar -v -classpath [very-long-list-of-class-paths] -srcdir src -outfile out -appclass danIDE.Main

Ich habe lange über dieses Problem gegoogelt und konnte immer noch keine Lösung finden. Kann mir jemand in die richtige Richtung zeigen? Danke vielmals!


Edit: Hier ist die Projektstruktur.

Project Structure

und hier ist die Explosions Glas.

enter image description here

New explodierte Glas als @Garry angefordert:

enter image description here

+0

es heißt 'Fehler: Jrfile kann nicht zugegriffen werden '. Das 'out.jar' ist im aktuellen Verzeichnis @ rakeb.void –

+0

Ich sehe, ich versuche, Ihren Fehler zu reproduzieren. –

+0

Möglicherweise fehlt Ihnen der Klassenpfad für 'danIDE.Main' – Arvind

Antwort

2

können Sie versuchen, unter Befehl? Stellen Sie sicher, dass der Ordner "classes" im Basisverzeichnis der zu packenden Dateien aktualisiert wird.

Wie Sie gesagt haben, dass Sie in der Lage sind, danIDE.Main auszuführen, nehme ich an, dass alle erforderlichen Klassen im Ordner dist verfügbar sind. erstellen So einen Ordner out im Projekt parallel zu dist

javapackager -createjar -classpath [very-long-list-of-class-paths] -appclass danIDE.Main -srcdir dist -outdir out -outfile out.jar -v 

Aktualisiert: gemäß dem hochgeladenen Screenshot: Punkt -srcdir-dist, jetzt das erzeugte Glas out.jar wird in out/out.jar

+0

Ich entschuldige mich, dass ich vergessen habe, die Parameter -srcdir und -outfile in die Frage aufzunehmen. Ich habe meine Frage entsprechend aktualisiert. Ich habe diese Parameter beim Bauen angegeben. Ich habe auch Ihr Kommando erneut versucht und es ist immer noch 'Konnte nicht finden oder laden Hauptklasse danide.Main' –

+0

@TengyuLiu können Sie Screenshot Ihrer Projektstruktur teilen und jol Inhalte explodiert. – Garry

+0

Ich habe die Screenshots hochgeladen. Bitte lassen Sie mich wissen, wenn Sie noch etwas brauchen. –

4

platziert werden, da Sie mit IntelliJ IDEA Ich schlage vor, Sie lassen IDEA Ihre JAR-Datei für Sie erstellen.

Öffnen Sie zunächst das Modul Einstellungen Fenster:

enter image description here

Dann fügen Sie ein neues Artefakt:

enter image description here

Wählen JARVon Module mit Abhängigkeiten:

enter image description here

Wählen Sie Ihre Hauptklasse im Fenster und entscheiden, ob Sie alle Klassen aus Ihrer Abhängigkeit JAR-Dateien in Ihrem JAR neu zu verpacken möchten (Extrakt JAR Option zum Ziel) oder, wenn Sie sie zusammen mit Ihrem JAR verteilen mögen (kopieren in das Ausgabeverzeichnis und Link über manifest Option):

enter image description here

Wenn Sie es bauen wollen, wenn Sie das Projekt erstellen (wahrscheinlich eine gute Idee), klicken Sie auf das Kontrollkästchen für die:

enter image description here

Wenn Sie das nächste das Projekt machen, wird die JAR zeigen unter out/Artefakte:

enter image description here

Wenn Sie nicht das Kontrollkästchen klicken haben die JAR für den Bau Wenn Sie das Projekt erstellen, können Sie das JAR aus der Option Build Artifacts im Menü Build erstellen.

+0

Ich versuchte Ihre Lösung und beim Ausführen der Jar gab es mir diesen Fehler: "Fehler: Ein JNI-Fehler ist aufgetreten, überprüfen Sie bitte Ihre Installation und versuchen Sie es erneut" –

+0

Welche Abhängigkeiten haben Sie? – Raniz

Verwandte Themen