Java sehr ungewöhnliche Klassenpfadprobleme
Ich versuche, eine Anwendung mit systemeigenen Bibliotheken und Inhalten mithilfe des folgenden Codes auszuführen:
ProcessBuilder pb = new ProcessBuilder("javaw",
"-classpath",
binDir + "polyrd.jar;" + binDir + "lwjgl.jar;" + binDir + "lwjgl_util.jar;",
"-Djava.library.path=" + nativesDir,
"monster860.polyrd.Polyrd");
Ich habe versucht, das Äquivalent in der Befehlszeile zu machen, indem ich es in -cp änderte, indem ich einfach verwendetebindir
anstattbinDir + "polyrd.jar;" + binDir + "lwjgl.jar;" + binDir + "lwjgl_util.jar;"
und zwischen java und javaw wechseln, aber egal was ich getan habe, es gab mir:
java.lang.NoClassDefFoundError: monster860/polyrd/Polyrd
Caused by: java.lang.ClassNotFoundException: monster860.polyrd.Polyrd
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Kann jemand helfen?
Mein Betriebssystem ist Windows Vista. Ja, diese Dateien existieren tatsächlich.
Hier ist, wie ich gekommen binbinDir
undnativesDir
:
public ProcessRunnable(File nativesDir, File binDir) {
try {
this.nativesDir = nativesDir.getCanonicalPath() + File.separator;
this.binDir = binDir.getCanonicalPath() + File.separator;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
EDIT: Nun, natürlich hat es absolut nichts damit zu tun, aber der Downloader lädt nur die ersten 2 KB der Datei herunter.