Hauptklasse wird nicht gefunden

Dieses Thema im Forum "Java Basics - Anfänger-Themen" wurde erstellt von Wuestenfuchs31, 11. Aug. 2011.

  1. Wuestenfuchs31

    Wuestenfuchs31 Neues Mitglied

    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. Monaria

    Monaria Neues Mitglied

    Die Klasse, die du deklarierst muss "public" sein und den gleichen Namen wie die Datei haben.
    Groß und Kleinschreibung sind relevant.
    Code (Java):

    public class HelloWorld{
     
     
  3. Wuestenfuchs31

    Wuestenfuchs31 Neues Mitglied

    Danke für die Antwort, dass habe ich auch schon erfolglos versucht. Der Code ist der folgende:
    Code (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.
     
  4. nrg

    nrg Neues Mitglied

    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 (Text):
    java Helloworld.java
    kompilieren dürfte
     
  5. Wuestenfuchs31

    Wuestenfuchs31 Neues Mitglied

    Ja das verstehe ich auch nicht....
    Die Fehlermeldung wurde nicht übersetzt und erscheint so in CMD
     
  6. Noctarius

    Noctarius Neues Mitglied

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

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

    Wuestenfuchs31 Neues Mitglied

    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. SamHotte

    SamHotte Neues Mitglied

    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. Wuestenfuchs31

    Wuestenfuchs31 Neues Mitglied

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

    SamHotte Neues Mitglied

    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. jgh

    jgh Neues Mitglied

    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. Wuestenfuchs31

    Wuestenfuchs31 Neues Mitglied

    Nein das hat beides ein großes W im Namen also daran kanns nicht liegen

    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. SamHotte

    SamHotte Neues Mitglied

    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. Wuestenfuchs31

    Wuestenfuchs31 Neues Mitglied

    ja
     
  15. SamHotte

    SamHotte Neues Mitglied

    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. bone2

    bone2 Guest

    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. jgh

    jgh Neues Mitglied

    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. Wuestenfuchs31

    Wuestenfuchs31 Neues Mitglied

    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
      Dateigröße:
      57,8 KB
      Aufrufe:
      831
    Zuletzt von einem Moderator bearbeitet: 11. Aug. 2011
  19. Gast2

    Gast2 Guest

    du darfst nicht schreiben
    Code (Text):
    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.
     
  20. Wuestenfuchs31

    Wuestenfuchs31 Neues Mitglied

    HelloWorld.class liegt im Verzeichnis C:\Java

    Dort wurde sie nach dem Kompilieren automatisch abgelegt


    ;-)
     

    Anhänge:

    • 8afRD.png
      8afRD.png
      Dateigröße:
      32,4 KB
      Aufrufe:
      472
    Zuletzt bearbeitet: 11. Aug. 2011
Die Seite wird geladen...