Läuft ein Java-Programm von der Befehlszeile aus das hängt davon ab, auf eine jar-Datei?
Habe ich eine einfache Java-Datei Q.java das hängt davon ab, eine externe Bibliothek Datei X.jar. Beide Q.java und X.jar sind im selben Verzeichnis. Ich kann kompilieren Q.java von der Befehlszeile aus zu tun: "javac -cp X.jar Q.java". Dies erzeugt ein Q.class Datei. Wie starte ich das jetzt? Ich habe versucht, alle diese:
1) java Q
2) java -cp X.jar Q
Bekomme ich immer eine
Exception in thread "main" java.lang.NoClassDefFoundError: Q
Verursacht durch: java.lang.ClassNotFoundException: Q
So, wie führe ich dieses aus der Befehlszeile, dass ich jetzt die Klasse file?
- Gibt es eine
package
Erklärung Q.java? - Würde das einen Unterschied machen? Ich habe ein ähnliches problem: stackoverflow.com/questions/43156180/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie angeben, in den classpath, den Sie verwenden möchten JAR-Abhängigkeiten UND der aktuellen lokalen Verzeichnis zu beheben Klassen.
Bearbeiten vorgeschlagen, in den Kommentaren:
Unter Windows ersetzen
:
durch;
:Stellen Sie das aktuelle Verzeichnis in den classpath, es sollte das problem lösen. Die meisten der Zeit, die wir brauchen aktuelle Verzeichnis im classpath, also in der Regel ich Rat zu setzen "." (ohne Anführungszeichen) in Ihrem system-CLASSPATH-Umgebungsvariable anstelle der Einstellung für jeden Lauf.