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