linux-l: java for linux
Marc-Sebastian Werner
marc at zedat.fu-berlin.de
Di Mär 24 17:43:51 CET 1998
Das kenne ich, Boris :-)
> Ich versuche seit zwei Tagen auf meinem Linuxrechner java zu installieren
> (jdk1.1.3). Leider funktioniert es nicht: Wenn ich, wie bei der Installations-
> beschreibung angegeben, die CLASSPATH-Variable nicht setze, beschwert sich
> der Compiler nach
>
> javac HelloWorld.java
>
> , dass CLASSPATH nicht gesetzt waere, und wenn ich die Variable setze,
> akzeptiert er zwar obige Zeile kommentarlos, aber ich erhalte keine Klasse
> HelloWorld.class und folgerichtig antwortet der Interpreter auf mein
>
> java HelloWorld
>
> , dass er keine Klasse mit diesem Namen finden koenne. Wenn ich dann einen
Ich unterstelle mal, dass der Compiler tatsaechlich ein HelloWorld.class
generiert; anderenfalls wuerde er einen Fehler melden (oder Du bist einem
tollen neuen Bug auf der Spur).
Das von Dir beschriebene Verhalten waere dann korrekt, und vermutlich auch mit
dem Tip von Jan noch nicht behoben. Beim _Kompilieren_ findet der Compiler
Dein *.java-File im aktuellen Verzeichnis (Du gibst einen _Datei_-Namen an, das
ist Sache des Betriebssystems). Den CLASSPATH braucht der Compiler, um die
Standard-Packages zu finden (System.out.println( ) kommt z.B. da her).
Beim _Interpretieren_ Deiner Klasse gibst Du als Parameter nicht eine Datei
an, sondern eine _Klasse_. Die zu finden ist kein Problem des Betriebssys-
tems, sondern der Java-Nomenklatur, und die kennt kein aktuelles Verzeich-
nis, sondern nur den CLASSPATH. Wenn Du den CLASSPATH um "." ergaenzt, wird
Dein Programm (vielleicht) funktionieren. Stelle das "." fuer alle Faelle
vorn (!) in den CLASSPATH (nicht schoen, aber bei 1.1.3 besser).
> mit der software mitgelieferten bereits compilierten javabytecode
> (Blink.class) z.B. nach /usr/local/jdk1.1.3/classes kopiere und vom
> Interpreter uebersetzen lassen will:
>
> java Blink
>
> , antwortet er:
>
> in class Blink: void main (String arg[]) is not defined
Auch das ist korrekt, denn Blink ist keine Applikation, sondern ein Applet.
Bei Applets sitzt die main()-Methode sozusagen im Browser, weswegen viele
Applets keine eigene main()-Methode haben. Daher kann der Java-Interpreter
sie auch nicht starten, siehe Fehlermeldung.
Weiterhin gute Unterhaltung :-)
marc
Mehr Informationen über die Mailingliste linux-l