Umgebungsvariable CMD findet Hauptklasse nicht (hat bereits funktioniert)

Aram

Mitglied
Hallo,

ich habe folgendes Problem: Ich habe diverse Javadateien (geschrieben mit Notepad++) mit CMD kompiliert und auch benutzen können, d.h. die Umgebungsvariablen müssen schonmal richtig gesetzt gewesen sein.
Jetz aber wird jedes Mal wenn ich "java Dateiname" eingebe, gemeldet, dass die Hauptklasse nicht gefunden/geladen werden kann, auch bei Dateien bei denen dies schon problemlos funktioniert hat.
Der Computer wurde in der Zwischenzeit auch nicht runter gefahren o.ä., die einzige "Veränderung" könnte gewesen sein, dass Notepad++ bzw. CMD neu geöffnet wurden, was ja aber keinen Einfluss haben sollte 😀.

Hab jetzt den Computer und Programme neu gestartet, die Umgebungsvariablen nochmal überprüft und die Class liegt auch im selben Ordner wie die Datei...

Vielen Dank schonmal für sämtliche Tipps 🙂

LG Aram
 
Was ist der genaue Aufruf den Du durchführst? Java nimmt keinen Dateinamen sondern einen Klassennamen! Die Klasse liegt evtl. als .class Datei vor (So diese nicht in einer jar steckt), aber da ist der Klassenname ohne .class anzugeben.

Desweiteren muss der Classpath stimmen. Wenn die Dateien lokal liegen bzw. mit den Unterverzeichnissen der Pakete direkt losgelegt wird, dann muss das aktuelle Verzeichnis im Classpath sein und es muss aus dem Verzeichnis heraus gestartet werden. Wenn Du mit "CMD" eine .cmd Datei meinst, dann kannst Du evtl. den Ort der Datei in den Classpath mit aufnehmen (Also "%~dp0"), so dass die CMD aus jedem Verzeichnis heraus aufgerufen werden kann und die Dateien auch beliebig verschobene werden können.
 
Danke für die Antwort.
Der Aufruf ist:
javac Dateiname.java
java Dateiname

Mit CMD meinte ich die Konsole.

Ja, die Klasse liegt im Ordner als .class vor. Classpath hab ich auch erstellt, führt direkt in den Bin von dem installierten JDK.

Das Seltsame ist, dass es ja bereits funktioniert hat, aber jetzt die Hauptklasse bei sämtlichen Programmen unauffindbar ist, ich mir aber nicht erklären kann, was ich verändert haben könnte... :/

Wenn ich folgendes ausprobiere:
java -cp . Dateiname

läuft das Programm, dann müsste der Fehler ja beim Classpath liegen oder?
 
Die Dateien hab ich ganz einfach schnörkellos in folgendem Unterverzeichnis abgespeichert
C:\Users\Nutzer.

Daher vermute ich mal, an der package-Struktur dürfe sich nichts geändert haben.
Den Pfad gebe ich auch so immer in der Konsole an führe dann die Befehle aus...

Und falls das etwas hilf: mit java -cp . Dateiname läuft es...
 
Ok, das klingt jetzt so als hast du in deinen Java-Dateien gar nichts von package drin stehen ?! Dann liegt es daran nicht. Aber wenn du sagst am classpath wurde nichts geändert ? Mhmmm ...
 
Nein, am package kann es dann ja eigentlich nicht liegen.
Immerhin läuft es wenn -cp . einfüge, dann kann ich es trotzdem nutzen, aber längerfristig kann das ja auch nicht die Lösung sein.

Danke für die Tipps 🙂
 

Zurück
Oben