sommech: Problem mit Java

Hallo,

ich habe mir vor kurzem die aktuellen Versionen von JRE und JDK auf WindowsXP installiert und versucht ein kurzes Java-Script zu kompilieren und auszuführen.

Beim kompilieren (mit javac) kommt 'Der Befehl "javac" ist entweder falsch geschrieben oder konnte nicht gefunden werden.'
Dann hab ich mir von wem ein fertig kompiliertes Script geben lassen und es versucht mit java auszuführen, worauf die Meldung 'Der Befehl "javac" ist entweder falsch geschrieben oder konnte nicht gefunden werden.'

Das Komische daran ist, dass ich es bereits auf mehreren PCs versucht habe und immer das selbe Problem hatte, also liegts wohl an mir.

MfG, sommech

--
Ein OS den Linuxern hoch im Licht,
ein Unix den Freaks in ihren Serverhallen,
den Macintosh, ewig dem Design verfallen.
Eines dem Dunklen Herrn auf dunklem Thron,
Im Lande Redmond, wo die Anwälte drohn.
Ein OS, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Redmond, wo die Anwälte drohn.
  1. Moin,

    ich habe mir vor kurzem die aktuellen Versionen von JRE und JDK auf WindowsXP installiert und versucht ein kurzes Java-Script zu kompilieren und auszuführen.

    Beim kompilieren (mit javac) kommt 'Der Befehl "javac" ist entweder falsch geschrieben oder konnte nicht gefunden werden.'
    Dann hab ich mir von wem ein fertig kompiliertes Script geben lassen und es versucht mit java auszuführen, worauf die Meldung 'Der Befehl "javac" ist entweder falsch geschrieben oder konnte nicht gefunden werden.'

    das hört sich irgendwie danach an, also du keine/falsche Umgebungsvariablen gesetzt hättest:
    CLASSPATH oder JAVA_HOME müsste auf C:\Programme\j2sdk1.4.2_07\ zeigen.

    MfG,
      Juan

    1. Hi,

      ähm, ich vermute, wenn du java nicht ans Laufen bekommst, nützt auch ein JAVAHOME oder CLASSPATH nicht viel, aber da lasse ich mich gerne eines besseren belehren.

      Du hast zwei Möglichkeiten:
      a) Wechsele in das bin-Verzeichnis des JDK (dort liegt nämlich genau die javac.exe und java.exe) und kompiliere dort mit javac <hier der komplette pfad zur .java-Datei), dann analog mit java
      b) Du setzt eine PATH-Angabe (Arbeitsplatz->rechte Maustaste->Eigenschaften->Erweitert->Umgebungsvariablen auf deinen JDK-BIN-Ordner. Dann kannst du von überall aus java(c).exe aufrufen, auch dort, wo deine .java-Datei liegt.

      MfG
      Rouven

      --
      -------------------
      ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
      1. jaja... manchmal sollte man erst mal alles lesen, bevor man meterlange Antworten schreibt.... Du hattest ja schon alles geschrieben...!

        yves

        Hi,

        ähm, ich vermute, wenn du java nicht ans Laufen bekommst, nützt auch ein JAVAHOME oder CLASSPATH nicht viel, aber da lasse ich mich gerne eines besseren belehren.

        Du hast zwei Möglichkeiten:
        a) Wechsele in das bin-Verzeichnis des JDK (dort liegt nämlich genau die javac.exe und java.exe) und kompiliere dort mit javac <hier der komplette pfad zur .java-Datei), dann analog mit java
        b) Du setzt eine PATH-Angabe (Arbeitsplatz->rechte Maustaste->Eigenschaften->Erweitert->Umgebungsvariablen auf deinen JDK-BIN-Ordner. Dann kannst du von überall aus java(c).exe aufrufen, auch dort, wo deine .java-Datei liegt.

        MfG
        Rouven

    2. Hallo,

      das hört sich irgendwie danach an, also du keine/falsche Umgebungsvariablen gesetzt hättest:
      CLASSPATH oder JAVA_HOME müsste auf C:\Programme\j2sdk1.4.2_07\ zeigen.

      Zusätzlich zu dem, was Rouven schreibt, sei noch anzumerken, daß du
      CLASSPATH und JAVA_HOME nur dann setzen solltest, wenn du es wirklich
      brauchst. (Außer JAVA_HOME für Tomcat habe ich das nie gebraucht.)

      Sowohl die JRE als auch das JDK finden ihre Pfade selbst. Wenn du für
      ein Programm konkrete Dateien in den Classpath aufnehmen mußt, sollte
      der Parameter "-cp" von java verwendet werden. (Den Punkt (.) für das
      aktuelle Verzeichnis nicht vergessen!)

      Man erkauft sich durch das Setzen des globalen CLASSPATH eigentlich
      nur obskure und nicht nachvollziehbare Probleme.

      Gruß
      Slyh

      1. nee... wenn der Klassenpfad nicht stimmt, kommt eine andere Meldung. Die Meldung sagt doch eindeutig, daß der _Befehl_ javac nicht gefunden wurde, was bedeutet, daß die PATH-Variable nicht auf das bin-Verzeichnis der Java-Installation zeigt. Damit das streßfrei funktioniert sollte das im Systempfad aufgenommen werden und nicht im User-Pfad. Unter XP also folgendes machen:

        RMK (rechterMausKlick) auf Arbeitsplatz -> Eigenschaften
        Dann Register "Erweitert" und dann unten den Button "Umgebungsvariablen" klicken.
        Unter "Systemvariablen" nun die Variable "Path" anklicken und
        dann den Button "bearbeiten" klicken.
        Nun am Ende dessen, was im Eingabefeld "Wert der Variablen" steht folgendes anfügen:
        ;C:\j2sdk1.4.2_10\bin

        wobei "C:\j2sdk1.4.2_10" bei Dir durch den Pfad zu ersetzen ist, wo D u dein JDK installiert hast... (denn den javac gibts ja nur beim JDK, das JRE ist ja nur die Runtime, die die Klassen ausführt und da braucht man ja keine Compiler mehr...). Das Semikolon am Anfang ist kein Tippfehler, sondern trennt die einzelnen Pfade voneinander!

        Auch wenn ich es für sinnvoll halte, klein anzufangen (meine ersten Java-Programme habe ich auch im Editor geschrieben und per Kommandozeile übersetzt... aber damals gab es noch keine IDEs...)
        sollte man dann doch lieber schnell auf eine IDE wie eclipse oder JBuilder zurückgreifen, die einem eine Menge Zeit und Nerven sparen!

        Grüße,
        Yves

        Hallo,

        das hört sich irgendwie danach an, also du keine/falsche Umgebungsvariablen gesetzt hättest:
        CLASSPATH oder JAVA_HOME müsste auf C:\Programme\j2sdk1.4.2_07\ zeigen.

        Zusätzlich zu dem, was Rouven schreibt, sei noch anzumerken, daß du
        CLASSPATH und JAVA_HOME nur dann setzen solltest, wenn du es wirklich
        brauchst. (Außer JAVA_HOME für Tomcat habe ich das nie gebraucht.)

        Sowohl die JRE als auch das JDK finden ihre Pfade selbst. Wenn du für
        ein Programm konkrete Dateien in den Classpath aufnehmen mußt, sollte
        der Parameter "-cp" von java verwendet werden. (Den Punkt (.) für das
        aktuelle Verzeichnis nicht vergessen!)

        Man erkauft sich durch das Setzen des globalen CLASSPATH eigentlich
        nur obskure und nicht nachvollziehbare Probleme.

        Gruß
        Slyh

  2. Hallo,

    javac funktioniert wieder, aber beim Ausführen ist immer noch die Meldung 'Exception in thread "main" java.lang.NoClassDefFoundError: Hallo'

    MfG, sommech

    --
    Ein OS den Linuxern hoch im Licht,
    ein Unix den Freaks in ihren Serverhallen,
    den Macintosh, ewig dem Design verfallen.
    Eines dem Dunklen Herrn auf dunklem Thron,
    Im Lande Redmond, wo die Anwälte drohn.
    Ein OS, sie zu knechten, sie alle zu finden,
    Ins Dunkel zu treiben und ewig zu binden
    Im Lande Redmond, wo die Anwälte drohn.
    1. Hallo,

      javac funktioniert wieder, aber beim Ausführen ist immer noch die Meldung 'Exception in thread "main" java.lang.NoClassDefFoundError: Hallo'

      Wenn deine Class-Datei "Hallo.class" heißt, mußt du es mit "java Hallo"
      (ohne das ".class") aufrufen.

      Wenn deine Hallo-Klasse in einem Package liegt, muß die .class-Datei im
      passenden Verzeichnis liegen, das dem Packagename entspricht.

      Beispiel:
      Die Kompilat der Klasse "com.example.Hallo" muß im Verzeichnis "com\example"
      liegen. Du mußt in das übergeordnete Verzeichnis, in dem
      sich das Verzeichnis "com" befindet, wechseln und dort
        java com.example.Hallo
      aufrufen.

      Gruß
      Slyh

      1. ... und beachte Groß-/Kleinschreibung bei den Klassennamen...Diese muss auch mit dem Dateinamen übereinstimmen.

        MfG
        Rouven

        --
        -------------------
        ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
      2. Hallo,

        javac funktioniert wieder, aber beim Ausführen ist immer noch die Meldung 'Exception in thread "main" java.lang.NoClassDefFoundError: Hallo'

        Wenn deine Class-Datei "Hallo.class" heißt, mußt du es mit "java Hallo"
        (ohne das ".class") aufrufen.

        Genauso mach ichs, aber es funktioniert leider nicht.

        MfG, sommech

        --
        Ein OS den Linuxern hoch im Licht,
        ein Unix den Freaks in ihren Serverhallen,
        den Macintosh, ewig dem Design verfallen.
        Eines dem Dunklen Herrn auf dunklem Thron,
        Im Lande Redmond, wo die Anwälte drohn.
        Ein OS, sie zu knechten, sie alle zu finden,
        Ins Dunkel zu treiben und ewig zu binden
        Im Lande Redmond, wo die Anwälte drohn.
        1. Hi,

          dann poste bitte mal deinen Quelltext...

          MfG
          Rouven

          --
          -------------------
          ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(