2017-12-27 2 views
0

Ich versuche, mein Programm über eine Befehlszeilenschnittstelle auszuführen.In Eclipse-Programm kompiliert, aber nicht im Terminal, Konflikt von importierten Bibliotheken, gradle/javac

Dementsprechend habe ich eine grundlegende CLI geschrieben, die Sie unten sehen können:

enter image description here

in Eclipse, ich kann es mit Argumenten versorgen und ausführen.

Wenn jedoch das Programm im Terminal ausgeführt wird, stürzt es mit der Beschwerde, dass es nicht die Bibliotheken finden kann, die mit gradle enthalten sind:

enter image description here

Ist es notwendig, für eine schließen eine Art Indikator für diese Gradle-Bibliotheken in der -cp bei Verwendung javac, um diese Datei unabhängig zu erstellen und auszuführen?

Antwort

1

Sie erhalten diesen Fehler, da Sie angeben müssen, wo das Glas, das dieses Paket enthält, ist, können Sie dies mit folgendem Befehl tun können:

javac -cp ".;/path/to/jar/ApacheCommonsCli.jar;/path/to/otherjar.jar;" CommandLineParameters.java 

Auch wenn Sie gradle verwenden, sollten Sie nicht benutze "javac", aber grelle Befehle.

Edit: So wie ein Rest ist das Glas Pfad zu dem Verzeichnis relativ, die Sie javac laufen, aber Sie können auch absolute Pfade verwenden, wie "C:/example/yourjar.jar"

Edit2: Auch zur Klarstellung: Sie können diese laufen in Ihrer IDE, weil es sich darum kümmert, Ihren Klassenpfad für Sie zu verwalten. Wenn Sie jedoch Gradle verwenden, sollten Sie Ihre Abhängigkeiten (Jars) in Ihrer Gradle-Datei angeben und von dort aus erstellen. Weitere Einzelheiten finden Sie in der Dokumentation zu Gradle.

Verwandte Themen