2017-11-24 2 views
0

Ich versuche einen java jar mit Classpath Argumente läuft wieRun Java-Programm Classpath

Ich brauche in diesem Format läuft:

java -cp "hibernateexample-0.0.1-SNAPSHOT.jar" 
com.javacodegeeks.snippets.enterprise.hibernate.App 

aber ich erhalte diesen Fehler ...

Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/service/ServiceRegistry 
    at com.javacodegeeks.snippets.enterprise.hibernate.service.BookService.<init>(BookService.java:13) 
    at com.javacodegeeks.snippets.enterprise.hibernate.App.main(App.java:11) 

Wie führe ich das Java-Glas mit überwintern Abhängigkeiten ohne Fehler?

In Eclipse funktioniert es gut.

Antwort

0

Sie müssen die abhängigen Jars mit Ihrer Java-Laufzeitumgebung verknüpfen.

java -cp "hibernateexample-0.0.1-SNAPSHOT.jar;lib/*" com.javacodegeeks.snippets.enterprise.hibernate.App 

Sie können Ihr Programm auch in einer IDE ausführen.

+0

Kann ich ohne/lib laufen? gerade mein Glas laufen lassen? –

+0

Sie können auch alle Abhängigkeiten in ein einzelnes JAR verpacken: https://stackoverflow.com/questions/19150811/what-is-a-fat-jar –

+0

Nein, wie David sagte, entweder fügen Sie die Abhängigkeiten zum Jar oder zu Ihnen hinzu Liefern Sie die ausführbare Datei 'java' mit dem Pfad zu den abhängigen Bibliotheken. – albi9

0

Wenn Sie Ihr Java-Programm von einer IDE wie Eclipse oder einer anderen ausführen, müssen Sie die Umgebungsvariable CLASSPATH oder PATH nicht explizit setzen, sondern versuchen, von Terminal (in Unix/Linux/Mac) oder von der Eingabeaufforderung (in Windows) müssen Sie Ihren CLASSPATH oder PATH je nach Bedarf entweder temporär oder permanent einstellen. Für weitere Informationen besuchen Sie bitte: https://www.mysoftkey.com/java/path-and-classpath-in-java/