Ich habe ein Java-Programm, das ich gerne von überall auf meinem Rechner ausführen könnte. Ich möchte es über meine Cygwin-Eingabeaufforderung ausführen. Ich habe Skripte gemacht, um das Java-Programm aufzurufen. Ich habe dem Klassenpfad den Speicherort des Java-Programms hinzugefügt, und die Skripts funktionieren, wenn ich sie aus dem Verzeichnis des Java-Programms ausführe. Allerdings, wenn ich versuche, von einem anderen Verzeichnis zu laufen, erhalte ich:Wie führe ich ein Java-Programm aus einem anderen Verzeichnis?
java.lang.NoClassDefFoundError: commandprogram/CommandProgram
Das ist mein Skript ist:
#!/bin/sh
CWD=`dirname "$0"`
java -cp "$CWD/classes;$CWD/lib/AJarFile.jar" commandprogram/CommandProgram
Ändern der Java-Zeile wie folgt:
java -cp "$CWD/classes;$CWD/classes/commandprogram;$CWD/lib/AJarFile.jar" CommandProgram
produziert die gleichen Ergebnisse.
Sie Ihr Skript schreiben könnte, dass Sie nicht benötigen Java commandprogram/CommandProgram.class oder java -jar commandprogram/CommandProgram bei Menschen eine bessere Idee, auf denen zu sehen ... –
Sie geben zu tun .Krug? –
ist nicht der Pfad Trennzeichen ein Doppelpunkt (:) anstelle des Semikolons (;) Sie verwendet haben? –