Hauptklasse wird nicht gefunden

Diskutiere Hauptklasse wird nicht gefunden im Java Basics - Anfänger-Themen Forum

12
  1. #1
    Wuestenfuchs31


    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.

  2. #2
    Monaria


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

  3. #3
    Wuestenfuchs31


    Zitat Zitat von Monaria Beitrag anzeigen
    Die Klasse, die du deklarierst muss "public" sein und den gleichen Namen wie die Datei haben.
    Groß und Kleinschreibung sind relevant.
    Java Code:
    1.  
    2. public class HelloWorld{
    Danke für die Antwort, dass habe ich auch schon erfolglos versucht. Der Code ist der folgende:
    Java Code:
    1.  
    2. public class HelloWorld {
    3. public static void main(String[] args) {
    4. System.out.println("Hello World!");
    5. }
    6. }


    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.

  4. #4
    nrg


    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 ? oder hast du das übersetzt?

    wobei er dann eigentlich auch nicht mit [C]java Helloworld.java[/C] kompilieren dürfte

  5. #5
    Wuestenfuchs31


    Zitat Zitat von nrg Beitrag anzeigen
    wobei er dann eigentlich auch nicht mit [C]java Helloworld.java[/C] kompilieren dürfte
    Ja das verstehe ich auch nicht....
    Die Fehlermeldung wurde nicht übersetzt und erscheint so in CMD

  6. #6
    Noctarius


    Versuch vorher mal einen Kompilierungsvorgang
    [c]javac Helloworld.java[/c]

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

  7. #7
    Wuestenfuchs31


    Zitat Zitat von Noctarius Beitrag anzeigen
    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.

  8. #8
    SamHotte


    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.

  9. #9
    Wuestenfuchs31


    Zitat Zitat von SamHotte Beitrag anzeigen
    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.

  10. #10
    SamHotte


    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.

  11. #11
    jgh


    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?

  12. #12
    Wuestenfuchs31


    Zitat Zitat von SamHotte Beitrag anzeigen
    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

    Zitat Zitat von jgh Beitrag anzeigen
    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.

  13. #13
    SamHotte


    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?

  14. #14
    Wuestenfuchs31


    Zitat Zitat von SamHotte Beitrag anzeigen
    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?
    ja

  15. #15
    SamHotte


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

  16. #16
    bone2

    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

  17. #17
    jgh


    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!

  18. #18
    Wuestenfuchs31


    Der Screenshot zeigt erst mein CMD Fenster und in jenem erst das erfolgreiche kompilieren und dann der Fehlschlag besagte Datei zu öffnen
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken -gmzll.jpg  

  19. #19
    Gast2

    du darfst nicht schreiben
    [C]java C:\java\HelloWorld[/C]
    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.

  20. #20
    Wuestenfuchs31


    Zitat Zitat von EikeB Beitrag anzeigen
    du darfst nicht schreiben
    [C]java C:\java\HelloWorld[/C]
    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


    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken -8afrd.png  

12
Java Videokurs

Keine Antwort auf Deine Suche gefunden? Registriere Dich kostenlos und stelle Deine eigene Frage zu Java!

Jetzt kostenlos registrieren