Java anfängerproblem

janosch

Erfahrenes Mitglied
HI !

Ich bin grad dabei Java zu lernen und habe mir dazu das neuste Java SDK unter WindowsXP instaliert.Nach dem ich mir mein erstes Java Programm geschrieben habe wolte ich es Compilieren(javac HelloWorld.java) und danach ausführen was jedoch nicht funktioniert bzw Compilieren geht aber ausführen(java HelloWorld) läst es sich nicht(Fehlermeldung siehe unten).

Das Java Programm:
PHP:
class HelloWorld 
{
   public static void main (String args[])
      {
       System.out.println ("Hello world");
      }
};
Die Fehlermeldung:
Exception in thread "main" java.lang.NoclassDefFoundError : HelloWorld

Was mache ich Falsch ?

mfg janosch

P.S. Das Programm läuft unter Linux einwandfrei nur unter Windows nicht. Was eigentlich nicht sein kann da es der gleiche Code ist.
 
Zuletzt bearbeitet:

Christian Fein

Erfahrenes Mitglied
Deine Klasse liegt nicht im Classpath.

Gib mal deinen Classpath aus:
C:\ print %CLASSPATH%

mach dir am besten einen ordner z.b C:\JavaClasses

dann setze deinen Classpath:
set CLASSPATH=%CLASSPATH%;C:\JavaClasses

dann geht das.

Bzw les das mit den Classpath nochmal genauer nach
 

Thomas Darimont

Erfahrenes Mitglied
Servus!

Deine Classpath Variable kannst du in der Eingabeaufforderung auch mit
echo %CLASSPATH% einsehen...

Exkurs Classpath setzen...:

in der Dosbox:

Wenn dein JDK im Verzeichnis liegt
c:\jdk1.4.1_02

dann setzt du deinen Classpath so:[In Dosbox]
Code:
SET CLASSPATH=%CLASSPATH%;C:\jdk1.4.1_02;C:\jdk1.4.1_02\lib;C:\jdk1.4.1_02\bin;.;

<--- Der Punkt im Classpath steht für das aktuelle Verzecihnis, damit weden nun vom Compiler also auch die Klassen gefunden, deren Verzeichnis nicht explizit im Classpath steht, sich jedoch im selben Verzeichnis befinden...

Falls dein Computer die Datei "javac.exe" nicht finden kann, musst du den Pfad zum bin Verzeichnis der JDK gegebenenfalls auch noch im PATH(!) eintragen, dass geht dann so...

SET PATH=%PATH%;C:\jdk1.4.1_02\bin;

Denke dran, das zwischen dem "="-Zeichen keine Leerzeichen stehen dürfen!

Gruss Tom