Java unter Linux?
-
Hi!
Ich habe selbst kein Linux, aber mein Kumpel. Nun habe ich ihm mal testweise ein JAR von mir geschickt, was unter Windows auch per Doppelklick ausführbar ist.
Nun wollte er es starten, leider hat das nicht geklappt.Hier mal die Ausgabe der Konsole unter Linux:
[mathias@junktown java]$ gij -jar LineCounter.jar Exception in thread "main" java.lang.NoClassDefFoundError: while resolving class: LineCounter at java.lang.VMClassLoader.resolveClass(java.lang.Class) (/usr/lib/libgcj.so.5.0.0) at java.lang.Class.initializeClass() (/usr/lib/libgcj.so.5.0.0) at java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (/usr/lib/libgcj.so.5.0.0) at java.lang.Class.forName(java.lang.String) (/usr/lib/libgcj.so.5.0.0) at gnu.gcj.runtime.FirstThread.run() (/usr/lib/libgcj.so.5.0.0) at _Jv_ThreadRun(java.lang.Thread) (/usr/lib/libgcj.so.5.0.0) at _Jv_RunMain(java.lang.Class, byte const, int, byte const, boolean) (/usr/lib/libgcj.so.5.0.0) at __libc_start_main (/lib/tls/libc-2.3.3.so) Caused by: java.lang.ClassNotFoundException: java.lang.StringBuilder not found in [file:LineCounter.jar, core:/] at java.net.URLClassLoader.findClass(java.lang.String) (/usr/lib/libgcj.so.5.0.0) at gnu.gcj.runtime.VMClassLoader.findClass(java.lang.String) (/usr/lib/libgcj.so.5.0.0) at java.lang.ClassLoader.loadClass(java.lang.String, boolean) (/usr/lib/libgcj.so.5.0.0) at _Jv_FindClass(_Jv_Utf8Const, java.lang.ClassLoader) (/usr/lib/libgcj.so.5.0.0) at java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (/usr/lib/libgcj.so.5.0.0) at _Jv_BytecodeVerifier.verify_instructions_0() (/usr/lib/libgcj.so.5.0.0) at _Jv_VerifyMethod(_Jv_InterpMethod) (/usr/lib/libgcj.so.5.0.0) at _Jv_PrepareClass(java.lang.Class) (/usr/lib/libgcj.so.5.0.0) at _Jv_WaitForState(java.lang.Class, int) (/usr/lib/libgcj.so.5.0.0) at java.lang.VMClassLoader.linkClass0(java.lang.Class) (/usr/lib/libgcj.so.5.0.0) at java.lang.VMClassLoader.resolveClass(java.lang.Class) (/usr/lib/libgcj.so.5.0.0) ...7 more
Was läuft da schief?
-
Was ist denn gij?
-
Ich denke, das ist das java.exe Gegenstück auf Linux.
-
Nein, das heisst java.
-
Offensichtlich nicht. Wenn man bei meinem Kumpel "java" eingibt, dann steht da, das dies ein Platzhalter für gij ist.
Außerdem ist es doch egal, ob das Teil nun Java oder gij heißt.
Es scheint ja wohl beides eine VM zu starten.
-
Pogo schrieb:
Offensichtlich nicht. Wenn man bei meinem Kumpel "java" eingibt, dann steht da, das dies ein Platzhalter für gij ist.
Außerdem ist es doch egal, ob das Teil nun Java oder gij heißt.
Es scheint ja wohl beides eine VM zu starten.Wenn nur der name anders wäre, dann wäre das kein Problem. gij ist die GNU Runtime für Java. Ich schätze, dass die nicht alle funktionen beherrscht, oder mit neueren Bytecodes nicht umgehen kann. Dein Freund sollte sich die original VM von Sun herunter laden, oder du übersetzt das Programm mal mit dem gcj.
-
Danke jetzt klappt´s.