Problem mit Java
sommech
- 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
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
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
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
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
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
Hallo,
javac funktioniert wieder, aber beim Ausführen ist immer noch die Meldung 'Exception in thread "main" java.lang.NoClassDefFoundError: Hallo'
MfG, sommech
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
... und beachte Groß-/Kleinschreibung bei den Klassennamen...Diese muss auch mit dem Dateinamen übereinstimmen.
MfG
Rouven
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
Hi,
dann poste bitte mal deinen Quelltext...
MfG
Rouven