Hauptklasse wird nicht gefunden

Ich stehe mit meinem Java noch ganz am Anfang und versuche gerade das HelloWorld Tutorial umzusetzen.

Es klappt auch alles bis ich nach dem Kompilieren die erstellte .class datei ausführen möchte:

Gebe ich nun in CMD %java HelloWorld ein, dann bekomme ich angezeigt:"Fehler: Hauptklasse Helloworld konnte nicht gefunden oder geladen werden"

Das Kompilieren per CMD klappt wunderbar, aber nur dieser letzte Schritt leider gar nicht. Da ich nun schon einige Zeit in den Versuch der Lösung des Problems gesteckt habe, wollte ich hier nachfragen, ob jemand einen Vorschlag zur Lösung hat.
 

Monaria

Aktives Mitglied
Die Klasse, die du deklarierst muss "public" sein und den gleichen Namen wie die Datei haben.
Groß und Kleinschreibung sind relevant.
Java:
public class HelloWorld{
 
Die Klasse, die du deklarierst muss "public" sein und den gleichen Namen wie die Datei haben.
Groß und Kleinschreibung sind relevant.
Java:
public class HelloWorld{

Danke für die Antwort, dass habe ich auch schon erfolglos versucht. Der Code ist der folgende:
Java:
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!"); 
    }
}

Beim Kompilieren gibt es seltsamerweise keine Probleme und das selbe Problem tritt auch bei anderen Java-kurz-Codes auf.

Ich habe überlegt ob es irgendwas mit den Umgebungsvariablen zu tun hat, aber die habe ich eigentlich auch richtig gesetzt.
 

nrg

Top Contributor
das ist auch case sensitive. wenn deine Datei Helloworld.java muss auch deine Klasse Helloworld heissen

edit: seit wann gibt Java eigentlich Fehlermeldungen in Deutsch aus :D? oder hast du das übersetzt?

wobei er dann eigentlich auch nicht mit
Code:
java Helloworld.java
kompilieren dürfte
 
Versuch vorher mal einen Kompilierungsvorgang
[c]javac Helloworld.java[/c]

und dann ausführen:
[c]java Helloworld[/c]

Genauso hab ichs ja gemacht. javac führt er ohne Probleme aus. Den Befehl java scheint er auch zu kennen. Nur wenn ich meine vorher kompillierte .class Datei mit java ausführen will geht irgendwas schief.

Obwohl ich im richtigen Verzeichnis bin scheint er die Datei nicht zu finden. Ich kann auch einen falschen Namen eingeben und bekomme die selbe Fehlermeldung.
 

SamHotte

Top Contributor
Wie sieht denn Dein CLASSPATH aus? Die Java-Laufzeit sucht nicht von sich aus im aktuellen Verzeichnis (liegt an der Unix-Herkunft).

Dort muss entweder das Verzeichnis, in dem die HelloWorld.java liegt, drin stehen oder der "." für das jeweils aktuelle Verzeichnis.

Alternativ kannst Du auch in der Kommandozeile "java [Laufwerk]:\[Programmverzeichnis]\HelloWorld eingeben.
 
Wie sieht denn Dein CLASSPATH aus? Die Java-Laufzeit sucht nicht von sich aus im aktuellen Verzeichnis (liegt an der Unix-Herkunft).

Dort muss entweder das Verzeichnis, in dem die HelloWorld.java liegt, drin stehen oder der "." für das jeweils aktuelle Verzeichnis.

Alternativ kannst Du auch in der Kommandozeile "java [Laufwerk]:\[Programmverzeichnis]\HelloWorld eingeben.

Auch wenn ich das letztere eingebe habe ich genau das selbe Problem: Kompilieren geht, aber das Ausführen nicht.
 

SamHotte

Top Contributor
Nur zur Sicherheit:

1. In Deinem Code heißt die Klasse "HelloWorld" mit großem "W";
2. Die Datei heißt aber "Helloworld" mit kleinem "W".

Richtig? Falls ja, bitte entweder die Datei oder die Klasse umbenennen, sodass sie exakt gleich heißen.
 

jgh

Top Contributor
Fehlersuche mal systematisch:
Du hast was für ein System?
bei der Eingabe [c]java[/c] kommt sowas ähnliches:
[xml]Verwendung: java [-options] class [args...]
(zur Ausf³hrung einer Klasse)
oder java [-options] -jar jarfile [args...]
(zur Ausf³hrung einer JAR-Datei)
wobei options Folgendes umfasst:
-d32 Verwendet ein 32-Bit-Datenmodell, sofern verf³gbar
-d64 Verwendet ein 64-Bit-Datenmodell, sofern verf³gbar
-client zur Auswahl der "client" VM
usw...
[/xml]
und nach [c]javac HelloWorld.java[/c] erscheint in dem Verzeichnis eine HelloWorld.class datei?
 
Nur zur Sicherheit:

1. In Deinem Code heißt die Klasse "HelloWorld" mit großem "W";
2. Die Datei heißt aber "Helloworld" mit kleinem "W".

Richtig? Falls ja, bitte entweder die Datei oder die Klasse umbenennen, sodass sie exakt gleich heißen.
Nein das hat beides ein großes W im Namen also daran kanns nicht liegen

Fehlersuche mal systematisch:
Du hast was für ein System?
bei der Eingabe [c]java[/c] kommt sowas ähnliches:
[xml]Verwendung: java [-options] class [args...]
(zur Ausf³hrung einer Klasse)
oder java [-options] -jar jarfile [args...]
(zur Ausf³hrung einer JAR-Datei)
wobei options Folgendes umfasst:
-d32 Verwendet ein 32-Bit-Datenmodell, sofern verf³gbar
-d64 Verwendet ein 64-Bit-Datenmodell, sofern verf³gbar
-client zur Auswahl der "client" VM
usw...
[/xml]
und nach [c]javac HelloWorld.java[/c] erscheint in dem Verzeichnis eine HelloWorld.class datei?

Ich hab Windows 7. Wenn ich java eingebe kommt genau das, was du hier geschrieben hast. Und wenn ich [c]javac HelloWorld.java[/c] eingebe erscheint im selben Verzeichnis die .class Datei ja.
 

SamHotte

Top Contributor
An Windows7 kann's nicht liegen, habe es selbst gerade mal nachvollzogen. Befindest Du Dich in dem Verzeichnis, in dem die .class liegt, wenn Du java aufrufst?
 

SamHotte

Top Contributor
Hmm. Mir fällt da momentan auch nichts mehr ein ... Pfad stimmt, Groß-/Kleinschreibung stimmt, JAVA-ClassPath scheint zu stimmen ... jemand anderes eine Idee?
 
B

bone2

Gast
compilier mal im cmd und versuche es zu starten, mach mit dem windows snipping tool einen screenshot vom commandofenster, lad den bei imgur.com hoch udn zeig ihn her
 

jgh

Top Contributor
ich habe das gerade per Teamviewer ausprobiert...neue java datei angelegt, per cmd compilieren lassen, er schreibt wunderbar die .class datei, trozdem findet er dann die Hauptdatei nicht, die definitiv im korrekten Ordner liegt!
 
Der Screenshot zeigt erst mein CMD Fenster und in jenem erst das erfolgreiche kompilieren und dann der Fehlschlag besagte Datei zu öffnen
 

Anhänge

  • gmZlL.jpg
    gmZlL.jpg
    57,8 KB · Aufrufe: 1.085
Zuletzt bearbeitet von einem Moderator:
G

Gast2

Gast
du darfst nicht schreiben
Code:
java C:\java\HelloWorld
Java erwartet als Parameter nicht den Pfad zur Klasse, sondern den vollständigen Klassennamen. Die Klasse HelloWorld müsste also im package c:.java liegen, und das tut sie wohl nicht ;)
Wechsel ins verzeichnis c:/java und führ da dann einfach java HelloWorld aus.
 
du darfst nicht schreiben
Code:
java C:\java\HelloWorld
Java erwartet als Parameter nich den Pfad zur Klasse, sondern den vollständigen Klassennamen. Die Klasse HelloWorld müsste also im package c:.java liegen, und das tut sie wohl nicht ;)
Wechsel ins verzeichnis c:/java und führ da dann einfach java HelloWorld aus.

HelloWorld.class liegt im Verzeichnis C:\Java

Dort wurde sie nach dem Kompilieren automatisch abgelegt


;-)
 

Anhänge

  • 8afRD.png
    8afRD.png
    32,4 KB · Aufrufe: 607
Zuletzt bearbeitet:

parabool

Bekanntes Mitglied
schau mal ob deine Klasse in einem Package liegt.
Dann müsstest Du es so starten: java deinpackage.HelloWorld
(vom Verzeichnis über den Package aus)
 

jgh

Top Contributor
zeigt er dir mit [c]dir[/c] eigentlich die HelloWorld.class an?

oder kann sonst evtl. irgendeines von den Security-Programmen evtl. die Ausführung von .class Dateien verhindern?
 
B

bone2

Gast
so sollte es sein
3286d1313054141-hauptklasse-gefunden-pfad.jpg



edit: im zweiten screenshot hast du es ja jetzt so... hm

installier java nochmal neu
 

Anhänge

  • pfad.JPG
    pfad.JPG
    25,6 KB · Aufrufe: 1.618
Zuletzt bearbeitet von einem Moderator:
Hast du irgendwie an deinem classpath rumgespielt oder ähnliches?
Versuch mal
Code:
java -cp . HelloWorld

DAS FUNKTIONIERT!!!

Super danke:toll:

Ich hab eigentlich nicht an meinem Classpath rumgespielt aber was müsste ich denn ändern, damit ich java-Programme ganz normal ausführen kann?
Momentan verweist mein Classpath noch auf C:\Program Files (x86)\Java\jdk1.7.0\lib
 
G

Gast2

Gast
Der Classpath sollte immer das aktuelle Verzeichnis mit einschließen, also so:
Code:
.;C:\Program Files (x86)\Java\jdk1.7.0\lib
Standardmäßig sollte der aber auch so angelegt sein ;)
 

SamHotte

Top Contributor
Wie sieht denn Dein CLASSPATH aus? Die Java-Laufzeit sucht nicht von sich aus im aktuellen Verzeichnis (liegt an der Unix-Herkunft).

Dort muss entweder das Verzeichnis, in dem die HelloWorld.java liegt, drin stehen oder der "." für das jeweils aktuelle Verzeichnis.

Wer lesen kann, ist klar im Vorteil ...

/Edit: wieso geht das Quoten eigentlich nicht?
/Edit2: etzert!
 
Zuletzt bearbeitet:
M

Meyar

Gast
Ich habe gerade das Gleiche Problem gehabt...
Bei mir lag es daran, dass ich anstatt:

java HalloWelt

nach dem Kompilieren folgendes in das CMD Fenster eingegeben habe:

java HalloWelt.class

Dann erscheint nämlich die selbe Fehlermeldung von wegen Hauptklasse konnte nicht gefunden werden.
Vielleicht liegts ja daran...
 

prinz_ileus

Mitglied
Die Diskussion ist zwar nicht mehr aktuell, aber ich habe das gleiche Problem gehabt, und heute erfolgreich lösen können.

Statt bei den Umgebungsvariablen / Variablen "Classpath" habe ich die Variable "JAVA_HOME" erstellt. einfach den Pfad C:\Program Files\java\jdk1.7.0_04 eingeben (dieser Pfad muss nicht stimmen schaut in eurem WindowsExplorer nach, wichtig ist, dass nach der aktuellen Version (bei mir eben jdk1.7.0_04) kein \bin mehr eingegeben wird) ok klicken (mehrmals), dann Neustart, und java Hallo sollte laufen.
 

vkay90

Mitglied
Wenn eine Hauptklasse nicht geladen werden kann, dann kann das Problem nur darin bestehen, dass sich das .class File nicht im richtigen Verzeichnis befindet.

Das Class File muss sich im Verzeichnis befinden, welches im Classpath gewählt wurde.

Wenn für den Classpath in den Umgebungsvariablen beispielsweise C:\Java_Class_Files vermerkt wurde, könnte das .java File in diesem Verzeichnis kompiliert werden, aber müsste in jedem Fall dort abgelegt sein, wenn man mit java das Programm starten will.


Checkliste:

1. Path/Classpath einrichten.
Benutzervariable mit dem Namen "Path" anlegen und das Verzeichnis des Ordners "bin" des jdk angeben.

2. Weiere Benutzervariable mit dem Namen "Classpath" anlegen und das Verzeichnis angeben, in dem die Class Files abgelegt werden, die man dann per CMD.exe ausführen möchte.

Wichtig: Beim Kompilieren mit dem Kommandozeilen Interpreter muss man sich im jeweiligen Verzeichnis des zu kompilierenden java Files befinden. (Gilt nicht für das Ausführen von Class Files).

LG Vadim
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
kodela Hauptklasse wird nicht gefunden Java Basics - Anfänger-Themen 3
Z JDK installieren Hauptklasse wird nicht gefunden Java Basics - Anfänger-Themen 9
A Hauptklasse wird nicht in JAR-Datei gefunden Java Basics - Anfänger-Themen 11
U Hauptklasse kann nicht gefunden werden Java Basics - Anfänger-Themen 8
Kirby.exe Hauptklasse konnte nicht gefunden werden.... Java Basics - Anfänger-Themen 27
E Die Hauptklasse konnte nicht gefunden werden. Java Basics - Anfänger-Themen 12
H Hauptklasse ... konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 8
P Fehler: Hauptklasse [Klassenname] konnte nicht gefunden oder gelad Java Basics - Anfänger-Themen 4
B Klassen Alle Unter-Objekte durchlaufen in der Hauptklasse Java Basics - Anfänger-Themen 10
S Hauptklasse konnte nicht gefunden werden Java Basics - Anfänger-Themen 0
S Fehler: Hauptklasse bin.demo.Start konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 2
M Klassen Fehler: Hauptklasse konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 17
R Methoden Methode der GUI-Klasse Zugriff auf Methoden der Hauptklasse Java Basics - Anfänger-Themen 9
S Classpath "Hauptklasse konnte nicht gefunden oder geladen werden" Java Basics - Anfänger-Themen 6
C Java Hauptklasse konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 14
K Hauptklasse konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 3
A Umgebungsvariable CMD findet Hauptklasse nicht (hat bereits funktioniert) Java Basics - Anfänger-Themen 6
J JDK installieren Hauptklasse .... konnte nicht geladen werden. Java Basics - Anfänger-Themen 4
K Klassen Hilfe - Hauptklasse kann nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 5
E Shell: Hauptklasse konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 3
C Klassen Hauptklasse kann nicht gefunden werden Java Basics - Anfänger-Themen 4
T Klassen Hauptklasse nicht gefunden Java Basics - Anfänger-Themen 6
J Hauptklasse kann nicht gefunden werden! HILFE!!!! Java Basics - Anfänger-Themen 1
M Fehler: Hauptklasse konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 6
D Wie erstelle ich eine neue Hauptklasse mit eclipse? Java Basics - Anfänger-Themen 3
R Compiler-Fehler javac -> "hauptklasse com.sun.tools.javac.main konnte nicht gefunden oder geladen werden" Java Basics - Anfänger-Themen 33
S Input/Output Hauptklasse kann nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 2
S Hauptklasse nicht gefunden Java Basics - Anfänger-Themen 2
E Hauptklasse konnte nicht gefunden werden... Java Basics - Anfänger-Themen 6
I Fehler: Hauptklasse com.sun.tools.javac.main konnte nicht gefunden werden Java Basics - Anfänger-Themen 3
S Erste Schritte Hauptklasse nicht gefunden Java Basics - Anfänger-Themen 5
D Erste Schritte Hauptklasse konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 6
L Hauptklasse nicht gefunden Java Basics - Anfänger-Themen 2
B GUI- Klasse mit Hauptklasse "verknüpfen"? Java Basics - Anfänger-Themen 13
P Projekt Hauptklasse Java Basics - Anfänger-Themen 4
S jar-File findet Hauptklasse nicht Java Basics - Anfänger-Themen 9
K Hauptklasse und Nebenklasse Objekte erzeugen Java Basics - Anfänger-Themen 8
T Datentypen boolean von anderer klasse in hauptklasse übertragen Java Basics - Anfänger-Themen 2
C OOP Klassen in der "Hauptklasse" bekannt machen Java Basics - Anfänger-Themen 4
B Frage zu Programmierstil: sollte Hauptklasse nur main enthalten? Java Basics - Anfänger-Themen 6
D Integer aus Nebenklasse in Hauptklasse nutzen Java Basics - Anfänger-Themen 8
P java.lang.NoClassDefFoundError.Hauptklasse fehlt Java Basics - Anfänger-Themen 13
S Methode aus Hauptklasse in innerer Klasse verwenden Java Basics - Anfänger-Themen 4
K Hauptklasse aufrufen Java Basics - Anfänger-Themen 3
A Hauptklasse: Ausführen einer Unterklasse? Java Basics - Anfänger-Themen 9
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
T if-else Bedingung wird ignoriert Java Basics - Anfänger-Themen 4
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
P Webseite vom Smartmeter wird nur unleserlich angezeigt Java Basics - Anfänger-Themen 7
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
Ostkreuz Wieso wird die Methode nochmal aufgerufen? Java Basics - Anfänger-Themen 5
Oneixee5 Maven Plugin wird 2 mal ausgeführt Java Basics - Anfänger-Themen 10
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
C Was tun wenn .class erwartet wird ? Java Basics - Anfänger-Themen 6
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
MiMa Ungültiges Datum wird nicht erkannt ?? Java Basics - Anfänger-Themen 6
schemil053 Multithread - Input verrutscht während etwas ausgegeben wird Java Basics - Anfänger-Themen 6
K REGEX - Rechnungsbetrag wird nicht richtig ausgelesen. Java Basics - Anfänger-Themen 3
_user_q Timer - ScheduledExecutorService wird schon vorher beendet Java Basics - Anfänger-Themen 5
X Erste Schritte Scanner eingabe wird übersprungen Java Basics - Anfänger-Themen 4
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
M Text wird in der Console nicht ausgegeben. Java Basics - Anfänger-Themen 11
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Zweidimensionales Array [][] wird untereinander ausgegeben Java Basics - Anfänger-Themen 14
sserio Math. Befehl wird rot markiert Java Basics - Anfänger-Themen 5
M Rechteck wird nicht angezeigt Java Basics - Anfänger-Themen 3
B Bungeecord | ProxiedPlayer wird nicht in ArrayList hinzugefügt Java Basics - Anfänger-Themen 1
U Methode wird genutzt, ohne dass ich die aufrufe? Java Basics - Anfänger-Themen 4
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
M Mein quellcode wird nicht in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
I Code wird nicht ausgeführt Java Basics - Anfänger-Themen 2
M wird der Konstruktor nicht als 1. ausgeführt? Java Basics - Anfänger-Themen 13
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
K Präzedenregeln in Java sagen, dass +expr und -expr vor + von Addition und - von Addition stehen, warum wird dann z. B. a+b als eine Addition ausgeführ Java Basics - Anfänger-Themen 7
M Was wird hier genau getestet? Java Basics - Anfänger-Themen 9
M Wie schreibe ich eine if-Verzweigung um, so dass ein Bedingungsoperator benutzt wird? Java Basics - Anfänger-Themen 9
I Programm erkennt nicht an das Array zurückgegeben wird trotz Initialisierung *einfach* Java Basics - Anfänger-Themen 9
K Jlabel mit itemlistevent Text gegeben, wird nicht angezeigt Java Basics - Anfänger-Themen 5
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
M Referenzen zuweisen und wird gleichzeitig ausgeführt Java Basics - Anfänger-Themen 6
O System.out.println wird nicht ausgegeben? Java Basics - Anfänger-Themen 11
Zrebna Umgebungsvariable Wieso wird meine verwendete JDK-Version in der Prompt nicht erkannt? Java Basics - Anfänger-Themen 6
el_pato DialogFenster wird nicht in Schleife geöffnet? Java Basics - Anfänger-Themen 30
J if-Schleife innerhalb einer if-Schleife wird in der Konsole nicht gelesen Java Basics - Anfänger-Themen 4
P Apache Derby wird in Eclipse trotz Anbindung nicht gefunden Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben