01.04.01 Schreiben, Kompilieren, Ausführen

Jetzt haben Sie schon viel über Java gelesen, aber noch kein Programm geschrieben. Das wird sich jetzt ändern! Legen Sie sich zuerst einen Ordner an, in welchem Sie Ihre Java-Programme in Zukunft abspeichern möchten.

Anschließend erstellen Sie dort einen Unterordner und nennen diesen HelloWorld (der Name Ihrer ersten Anwendung). In diesen Ordner erstellen Sie einen weiteren Ordner, welchen Sie de (für Deutschland) nennen. Darin erstellen Sie wiederum einen Ordner und nennen selbigen helloworld. Zu guter Letzt erstellen Sie noch eine neue Datei mit dem Namen HelloWorld.java im letzten Unterordner (achten Sie bei der Benennung der Datei und Ordner auf Groß- und Kleinschreibung). Diese Datei sollten Sie jetzt mit einem beliebigen Texteditor öffnen, und folgenden Text hinein kopieren:

package de.helloworld;

public class HelloWorld {

public static void main(String[] args) {
System.out.println("Hallo Welt");
}
}

Speichern Sie Ihr Werk jetzt ab. Sie haben soeben den Quellcode für Ihr erstes Java-Programm erstellt. Um das Programm zu starten, müssen Sie es zuvor kompilieren. Starten Sie hierfür erneut die Eingabeaufforderung und wechseln Sie in das HelloWorld-Verzeichnis, in welchem Ihr de-Ordner liegt.

In Windows wechseln Sie in der Eingabeaufforderung das aktuelle Verzeichnis mit dem Befehl cd Ordnername. Wenn Sie eine Ordnerebene zurück gehen wollen, so können Sie cd .. verwenden.

Kompilieren Sie jetzt das Programm mit dem javac-Befehl:

javac de/helloworld/HelloWorld.java

Der Java-Compiler hat nun Byte-Code aus ihrem Quellcode erstellt. Dieser Byte-Code wurde mit dem Namen HelloWorld.class im selben Verzeichnis gespeichert, wo auch HelloWorld.java liegt. Nun können Sie das Programm mit dem java-Befehl ausführen:

java de.helloworld.HelloWorld

Beachten Sie, dass Java case-sensitive ist. Das heißt, dass es sehr wohl einen Unterschied macht, ob Sie java de.helloworld.HelloWorld oder java de.helloworld.helloworld schreiben.

Wenn alles geklappt hat, sollten Sie jetzt die Ausgabe „Hallo Welt“ in Ihrer Eingabeaufforderung sehen.

Im nächsten Artikel auf Java-Blog-Buch.de werden wir das soeben fertiggestellte Programm gemeinsam analysieren.

Übung

Previous Article
Next Article

56 Replies to “01.04.01 Schreiben, Kompilieren, Ausführen”

  1. Sebastian

    Ist es egal wo ich den ersten Ordner erstelle? zb unter Bilder oder direkt unter C: ?
    ich habe es so gemacht

    C:\Users\Sebastian\Java\Helloworld\de\helloworld

    und in letzten Ordner Textdatei HelloWorld.java

    dann den Text eingefügt

    package de.helloworld;   
      
    public class HelloWorld {   
      
      public static void main(String[] args) {   
        System.out.println("Hallo Welt");   
      }   
    }

    und gespeichert und unter Eingabeauf…. ind Verzeichnis HelloWorld gewechselt( in dem Ordner liegr Ordner de)

    C:\Users\Sebastian\Java\Helloworld>

    wenn ich aber dann das engebe

    javac de/helloworld/HelloWorld.java

    kommt folgende Meldung
    javac: file not found: de\helloworld\HelloWorld.java
    Usage: javac
    use -help for a list of possible options

    jetzt bin ich müde und gehe schlafen 🙂
    Gruß

    Sebastian

  2. Stefan Kiesel

    Ja, das ist egal. Die Fehlermeldung besagt, dass javac die Datei nicht finden kann. Bist du dir sicher, dass die Datei bei dir nicht „HelloWorld.java.txt“ oder so ähnlich heißt, sondern wirklich „HelloWorld.java“? Wenn du in Windows eine neue Textdatei anlegst, dann endet diese meistens auf „.txt“. Deshalb solltest du in den Ordneroptionen den Haken bei „Erweiterung bei bekannten Dateitypen ausblenden“ deaktivieren. So siehst du die „wirkliche“ Dateiendung.

    Alternativ kannst du in der Eingabeaufforderung auch noch zwei Ordner tiefer in das Verzeichnis wechseln, in welchem sich die „HelloWorld.java“-Datei befindet. Wenn du dort dann „dir“ eingibst, bekommst du alle Dateien vollständig angezeigt.

    Falls deine Datei nicht „HelloWorld.java“ sondern „HelloWorld.java.txt“ heißt, musst du diese natürlich in „HelloWorld.java“ umbennen.

  3. Niko

    Hallo!

    Bei mir kommt folgendes:

    Der Befehl „javac“ ist entweder falsch geschrieben oder konnte nicht gefunden werden.
    Bin mir aber ziemlich sicher das ich im richtigen Ordner bin.

    Wäre für nen Tipp dankbar 🙂

  4. Hanz

    Vielleicht ist es noch interessant, darauf hinzuweisen, das man auf die Groß- und Kleinschreibung achten sollte. Ich habe gerade ca. 30 Minuten rumprobiert bis ich gemerkt habe, das man „java de.helloworld.HelloWorld“
    exact so schreiben muss, ich hatte es immer mit „java de.helloworld.helloworld“ probiert und mich über die Fehlermeldungen gewundert.

    Gruß Hanz

  5. Kilian

    Hallo,

    wenn ich das Programm ausführen möchte erscheint folgender Fehler:

    C:……\HelloWorld>java de.helloworld.HelloWorld
    Exception in thread „main“ java.lang.NoClassDefFoundError: de/helloworld/HelloWo
    rld
    Caused by: java.lang.ClassNotFoundException: de.helloworld.HelloWorld
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    Could not find the main class: de.helloworld.HelloWorld. Program will exit.

    Ich finde den Fehler nicht. Kann mir vllt jemand weiter helfen?

  6. Stefan Kiesel

    Hallo Kilian,

    wenn ein Java-Programm mit Packages erstellt wird (de.helloworld), dann muss die Java-Datei auch genau in der Verzeichnisstruktur de/helloworld liegen. Um das Programm zu kompilieren, muss in der selben Ebene, wie das de-Verzeichnis liegt, der javac-Aufruf erfolgen. Nach der Kompilierung wird java ebenfalls auf der selben Ebene ausgeführt.

    Mir scheint es, als würdest du dich im letzten Unterverzeichnis (hellworld) und nicht im Verzeichnis, welches auch das de-Verzeichnis beinhaltet, befinden.

    Gruß
    Stefan

  7. Yannick Urbanski

    Hallo Leute,

    Ich hatte gerade das Problem das ich „Stunden lang“ versucht habe dieses Hello World hin zu bekommen…Ich habe die Ordner und alles 3x gelöscht und wieder neu gemacht.

    Hinterher ist mir aufgefallen das im Quelltext der Ordnername (was im nächsten Kapitel steht) komplett klein geschieben wurde…Das war die Lösung des Probemes.

    Könnte ja der Autor wenn er das für Sinnvoll hält ergänzen, das man auf die groß und Kleinschreibeng schon bei den Ordnern achten muss 😉

  8. Helmut

    Hallo,
    habe das jdk auf meinem Computer (Windows Vista System) installiert und die Systemvariable Path ;C:\Programme\Java\jdk1.6.0_20\bin;
    gesetzt. Kontrolle mit java-version und java-version in der Eingabeauf-
    forderung erfolgte korrekt.
    Anschließend das Programm public class HalloWelt {//weiter wie im blog
    mit dem Vista Editor als reine Textdatei geschrieben und im Unterordner
    Projekte des Ordners Dokumente als Datei HalloWelt.java gespeichert.
    Wenn ich in der Eingabeaufforderung eingebe:
    C:\Users\name>cd Dokumente\Projekte\HalloWelt.java>javac HalloWelt.java
    erscheint: Das System kann den angegebenen Pfad nicht finden
    gebe ich ein: C:\Users\name\javac HalloWelt.java erscheint:
    javac:file not found:HalloWelt.java
    usage:javac
    use- help for a list of possible options
    Was mache ich falsch? Bin dankbar für Hilfe.

  9. Stefan Kiesel

    Hallo Helmut,

    Sie haben zuerst einmal ein kleines Problem mit dem „cd“ Befehl in der Windows Konsole. Der korrekte Ablauf müsste so aussehen:

    C:\Users\name>cd Dokumente\Projekte
    C:\Users\name\Dokumente\Projekte>javac HalloWelt.java

    Falls Sie Dann eine weitere Fehlermeldung erhalten, einfach noch einmal nachfragen.

    Grüße
    Stefan

  10. Helmut

    Lieber Stefan,
    danke für die Rückmeldung. Leider komme ich nicht weiter.Wenn ich in
    die Eingabeaufforderung C:\Users\name>cd Dokumente\Projekte eingebe, erscheint in der Konsole Das System kann den angegebenen Pfad
    nicht finden. Genauso bei C:\Users\name\Dokumente\Projekte>javac
    HalloWelt.java .
    Wäre es eine Lösung in der Systemvariablen Path hinter ;C:\Programme\
    Java\jdk1.6.0_20\bin;C:\Users\name\Dokumente\Projekte; anzufügen
    oder erzeuge ich so noch größere Probleme.
    Bitte um Geduld mit dem Anfänger.
    Danke
    Helmut

  11. Stefan Kiesel

    Hallo Helmut,

    Sorry, hier lag ein Missverständnis vor. Sie sollen in die Eingabeaufforderung nicht

    C:\Users\name>cd Dokumente\Projekte

    eingeben, sondern, wenn Sie sich in der Eingabeaufforderung im Verzeichnis C:\Users\name befinden, nur den Text cd Dokumente\Projekte um damit in das Verzeichnis C:\Users\name\Dokumente\Projekte zu wechseln. Anschließend geben Sie auch nur javac HalloWelt.java an, ohne den kompletten Pfad noch einmal zu nennen.

    Beachten Sie aber, dass Windows seit Vista gerne Ordner unter einem anderen Namen anzeigt, als sie eigentlich heißen. Bei mir mit Windows 7 heißt der Ordner „Dokumente“ bspw. eigentlich „Documents“.

    Von der Aufnahme weiterer Verzeichnisse in die Path-Umgebungsvariable würde ich abraten.

    Vielleicht hilft Ihnen das hier: http://www.carpelibrum.de/tutorials/windows_konsole.pdf auch weiter?

    Grüße
    Stefan

  12. Helmut

    Lieber Stefan,
    vielen Dank für Geduld und Hilfe, die mich auf den richtigen Weg führte.
    Ich habe in der Ferne gesucht und die Lösung lag so nahe.
    Hier der Weg im Falle andere die gleichen Probleme haben.
    Eingabe: C:\Users\name>cd documents\Projekte
    Konsole wechselt zu:
    C:\Users\name\Documents\Projekte
    von mir ergänzt mit >javac HalloWelt.java
    Konsole wechselt zu:
    C:\Users\name\Documents\Projekte
    von mir ergänzt mit: java HalloWelt
    Resultat: Hallo Welt!
    Endlich!!!!
    Nochmals vielen, vielen Dank.
    Helmut

  13. Sarah

    Hallo,

    auch ich habe Probleme über Probleme (blutiger Anfänger mit wenig Kenntnis von Fachbegriffen-lern ich alles noch) , von denen ich einige nach nächtelangem suchen im Internet selbst lösen konnte, aber jetzt nicht mehr weiterweiß.

    Nachdem der Befehl „javac HelloWorldApp.java“ (mein Dateiname) nicht funktionierte, habe ich nach einigem schlaumachen sowohl bei „javac“ als auch bei „HelloWorldApp.java“ den gesamten Pfad davorgeschrieben – und siehe da, auf einmal wurde „HelloWorldApp.java“ dann doch in eine CLASS-Datei umgewandelt. Nun habe ich dasselbe mit „*Pfad*\java *Pfad*\HelloWorldApp“ versucht, aber „java“ wird einfach nicht gefunden. Der Pfad ist 100% richtig, ich habe ihn geschätzte tausend mal kontrolliert und neu eingegeben. Warum findet er „java“ nicht? Muss ich jetzt alles noch mal installieren? „*Pfad*\javac“ (der selbe Pfad) hat ja auch funktioniert.

    Schon mal vielen Dank fürs überlegen und helfen,

    Sarah

    P.S.: gibt es eine Möglichkeit, wenigstens bei den „javac/java'“-Befehlen in Zukunft nicht mehr den ganzen Pfad hinschreiben zu müssen?

  14. Liem

    Hallo!

    Ich habe haargenau das gleiche Problem wie Kilian im 8. Kommentar. Allerdings bin ich wirklich 100% in dem Verzeichnis, in dem auch der de-Ordner liegt und genau dort will ich den javac-Befehl ausführen und es kommt der gleiche Fehler wie bei Kilian. Woran kann das noch liegen? Die Datei heißt auch wirklich HelloWorld.java und ohne .txt hinten dran. Das habe ich kontrolliert. Daran kann es also auch nicht liegen. Die Groß- und Kleinschreibung habe ich ebenfalls beachtet.

    Kann mir jemand weiter helfen? Ansonsten ist diese Seite hier echt TOP und auch, dass hier ständig geholfen wird, wenn es trotzdem Probleme geben sollte (wir Anfänger eben 🙂 ). Also ein ganz großes LOOOB.

    Lg Liem

  15. The_S

    Hallo Liem,

    wie schaut der Befehl denn genau aus und welche Fehlermeldung kommt genau? Auch wenn es so ausschaut wie bei Kilian im 8. Kommentar, bitte trotzdem noch einmal hier rein kopieren.

    Danke und Grüße
    Stefan

  16. Liem

    Hallo.

    Also so sieht mein Befehl aus (mit Pfad, also ich bin in dem Verzeichnis, wo sich auch der de-Ordner befindet):
    C:\Users\Administrator\Desktop\Java\HelloWorld>java de.helloworld.HelloWorld

    Danach kommt folgende Fehlermeldung:
    Exception in thread „main“ java.lang.NoClassDefFoundError: de/helloworld/HelloWo
    rld (wrong name: HelloWorld)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    Could not find the main class: de.helloworld.HelloWorld. Program will exit.

    Ich hoffe das ist irgendwie nützlich. Falls noch etwas gebraucht wird, einfach Bescheid sagen und danke für die schnelle Antwort ;).

  17. The_S

    Hallo Liem,

    liegt die HelloWorld.class im Verzeichnis C:\Users\Administrator\Desktop\Java\HelloWorld\de\helloworld? Wie schaut die zugehörige java-Datei aus? Mit welchem Befehl wurde kompiliert?

    Danke und Grüße
    Stefan Kiesel

  18. Liem

    Hallo Stefan,

    ja, genau dort liegt sie. Zusammen mit HelloWorld.java (und ohne .txt).

    So sieht sie aus:

    ———————————————————-
    package de.hallowelt;

    public class HalloWelt {

    public static void main(String[ ] args)
    {

    System.out.println(„Hallo Welt!“);
    }
    }

    ———————————————————-

    Es klappt nur, wenn ich in dem Verzeichnis bin, in dem auch die .class und die .java -Datei liegt und ich nur noch „java HalloWelt“ ausführen muss. Aber wenn ich mich ich dem Ordner befinde, wo auch das de-Verzeichnis liegt und ich „java .de.hallowelt.HalloWelt“ eingebe passiert nichts.

    Danke für die Antwort!

    Lg Liem

  19. The_S

    Hallo Liem,

    die Klasse heißt HalloWelt und liegt im package de.hallowelt. Oben hast du geschrieben, dass du java de.helloworld.HelloWorld aufrufst. Das ist aber ein Unterschied, du musst dich schon an die Bezeichnungen halten.

    Ansonsten lösche bitte mal die .class Datei aus dem Verzeichnis, kompiliere die .java Datei neu, poste hier den Kompilierungsbefehl und ggf. auftretende Fehlermeldungen sowie das Resultat vom anschließenden java-Aufruf, einmal aus dem Verzeichnis, in dem auch die .class liegt, und einmal im Verzeichnis, dass das de-Verzeichnis enthält.

    Grüße
    Stefan

  20. DAU

    Hallo Stefan,
    Danke für das Angebot ein Java-Buch kostenlos zu veröffentlichen und dann auch noch den Lesern und Nutzern beim Programmieren zu helfen.

    Könnte man nicht einfach dieses Programm, für alle die am Anfang ihrer Java-Karriere stehen, in irgend einem Verzeichnis abspeichern? Dann gibt es vielleicht weniger Probleme mit der Kombination von Package-Name, Dateipfad, Dateiname sowie Pfad des Compilers. Objektorientierte Programmierung ist schon schwer genug. 😉

  21. Stefan Kiesel

    Hallo DAU,

    man könnte der Einfachheit halber die Packages weglassen, das stimmt. Das gehört aber nicht zum guten Stil und ob sich ein Anfänger jetzt auswendig einen Aufruf mit oder ohne Package merkt, ist – meiner Meinung nach – erst einmal gleichgültig. Dateipfad, Dateiname und Pfad des Compilers müssen aber auch dann richtig verwendet werden, wenn man auf Packages verzichtet.

    Grüße
    Stefan

  22. Brian Odermatt

    Bei mir tauchte folgender Fehler auf:

    C:\Users\Medion\Programming\HelloWorld>java de.helloworld.Helloworld
    Exception in thread „main“ java.lang.NoClassDefFoundError: de/helloworld/Hellowo
    rld (wrong name: de/helloworld/HelloWorld)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

    Ich hab gegoogelt und rausgefunden, dass man die Classpath-Variable entsprechend einrichten muss, dann hat alles funktioniert.
    Vielleicht sollte man das noch erwähnen 😉

  23. Stefan Kiesel

    Hallo Brian,

    nein, das sollte man nicht erwähnen, weil man die Classpath-Variable unter keinen Umständen (zumindest nicht als Anfänger und ohne dass man weiß, was man tut) setzen bzw. wie Sie es nennen „entsprechend einrichten“ sollte. Der Classpath ist für jedes einzelne Programm separat zu definieren und ist keine globale Einstellung. Wenn Sie exakt so vorgehen, wie ich es geschrieben habe, funktioniert Ihr Programm auch ohne setzen der Classpath-Variable.

    Für weitere Informationen bzgl. des Classpaths verweise ich auf 07.03 Einbinden von externen Klassen – Classpath

    Beste Grüße
    Stefan

  24. Gregor

    Lieber Stefan,
    Damit dir nicht langweilig wird schon wieder ich 😉
    Beim kompilieren der datein kommt immer die Fehlermeldung: „Der befehl „javac“ ist entweder falsch geschrieben oder konnte nicht gefunden werden.“
    Die „javac“-datei an sich findet er… der befehl scheitert nur

  25. Stefan Kiesel

    Mir wird sicher nicht langweilig 😉 .

    Das javac-Programm wird nicht gefunden, sonst käme die Fehlermeldung nicht. Bitte noch einmal genau überprüfen, ob sich eine javac.exe in einem Pfad in der Path-Umgebungsvariablen befindet.

  26. Gregor

    Ja die Javac.exe befindet sich in
    c:/programme/java/jdk1.7.0_05/bin
    und der pfad ist auch in der path variabel als wert eingetragen…

  27. Stefan Kiesel

    Gerade Eben haben Sie aber noch gemeint, dass das Verzeichnis

    C:\Program Files\Java\jdk1.7.0_05\bin

    lautet. Das ist ein Unterschied zu

    c:/programme/java/jdk1.7.0_05/bin

    ! Wenn das mit der Path-Variable nicht klappen sollte, können Sie die Befehle auch ausführen, indem Sie den kompletten Pfad zu java/javac angeben. Also bspw.

    „C:\Program Files\Java\jdk1.7.0_05\bin\javac“ de/helloworld/HelloWorld.java

    Wenn diese Möglichkeit funktioniert, versuchen Sie Ihre Programmierumgebung ggf. zu einem späteren Zeitpunkt mit mehr Hintergrundwissen über die Systemeigenschaften noch einmal einzurichten. Vielleicht klappt es dann ja besser. Ich bin überzeugt, dass es nur an einer ganz kleinen Unwissenheit liegt, die man auf die Ferne aber nur schwer diagnostizieren kann.

  28. Morris

    Hallo Steffan

    Ich habe eben das Problem gehabt, das ich in den Ordner „HelloWorld“ wie oben beschrieben mit dem Befehl „cd HelloWorld“ wechseln wollte. Das hat nicht geklappt. Habe dann den ganzen Pfad ( C:\Users\Morris\Desktop\JavaProgs\HelloWorld ) aus dem Explorer kopiert und eingefügt. Das hat dann geklappt. Vllt sollte man oben die Angabe verändern in der steht :

    „In Windows wechseln Sie in der Eingabeaufforderung das aktuelle Verzeichnis mit dem Befehl cd Ordnername. Wenn Sie eine Ordnerebene zurück gehen wollen, so können Sie cd .. verwenden.“

    Und zwar dass man hinter das „cd“ nicht bloß den Name des ordners sondern den ganzen Pfad eingeben muss.

    Am Ende möcht ich nochmal großes Lob aussprechen und mich Bedanken für die großartige Arbeit die du und deine Kollegen hier verrichtet.
    Es ist auch ein Wahnsinn mit wie viel Geduld und Mühe du auf die Kommentare eingehst!

    Vielen Dank

  29. Stefan Kiesel

    Hallo Morris,

    vielen Dank für das Lob. Tatsächlich funktioniert es auch, wenn man nur den Ordnernamen nennt. Man muss sich lediglich „durchhangeln“. Befindet man sich in der Kommandozeile bspw. direkt auf Laufwerk C:\ und möchte zum Ordner C:\test\java\helloworld muss man nacheinander die Befehle

    cd test
    cd java
    cd helloworld

    eingeben. Zwischenzeitlich kann man auch mit dem Befehl dir überprüfen, welche Unterverzeichnisse es in diesem Ordner gibt.

    Grüße
    Stefan

  30. stefan

    Hallo
    Das Problem begann damit, dass ich zum kompilierern die gesamte Adresse bei C: beginnend schreiben musste. Hat letztlich geklappt.
    Wenn ich das nun ausführen will bekomme ich folgende Fehlermeldung: Hauptklasse de.helloworld.HelloWorld konnte nicht gefunden oder geladen werden.
    Hat das mit dem vorhergehenden Arbeitsschritt zu tun und kann mir jemand einen Tipp geben, wie ich weitermachen kann.
    Vielen Dank im Voraus
    Stefan

  31. stefan

    Hallo Stefan,
    Die Verzeichnisstruktur lautet:
    C:\JavaProgramme\HelloWorld\de\helloworld\HelloWorld.java
    Wie kann ich aber ein Bild meines Eingabefensters hochladen – wie macht man das?
    Danke und freundliche Grüße
    Stefan

  32. stefan

    Ich habe im letzten Ordner sowohl einen HelloWorld.class als auch einen HelloWorld.java Ordner.

    Bezüglich Eingabefenster:
    den Text:
    Hauptklasse de.helloworld.HelloWorld konnte nicht gefunden oder geladen werden.
    habe ich Wort-wörtlich abgeschrieben. Das einzige, was ich weggelassen habe ist das – “ Fehler: “

    Sie sollten sich nicht wegen mir die Nacht um die Ohren schlagen!
    Wir können auch an einem anderern Tag/Abend weiter grübeln.
    Danke erstmal
    Stefan

  33. Stefan Kiesel

    Sie haben einen „HelloWorld.class“ und „HelloWorld.java“ Ordner? Um den Screenshot bat ich nicht wegen der Fehlermeldung, das glaube ich Ihnen, sondern damit ich unter anderem Ihr aktuelles Verzeichnis und Ihren Aufruf sehe.

    Grüße
    Stefan

  34. stefan

    Guten Abend

    Zu Ihrer ersten Frage: Ja, ich habe sowohl einen HelloWorld.class als auch einen HelloWorld.java Ordner.

    Zur zweiten Frage: Den Screenshot bekomme ich nicht irgendwie nicht hin. Einen Teil von dem, was ich gestern probierte, habe ich nochmal gemacht, einfach kopiert und hier hinein gelegt. Vielleicht ist ja bereits daraus ersichtlich ob mein Fehler hier liegt.
    C:\Users\Stefan>java helloworld.HelloWorld
    Fehler: Hauptklasse helloworld.HelloWorld konnte nicht gefunden oder geladen wer
    den
    C:\Users\Stefan>java HelloWorld
    Fehler: Hauptklasse HelloWorld konnte nicht gefunden oder geladen werden
    C:\Users\Stefan>java de.helloworld.HelloWorld
    Fehler: Hauptklasse de.helloworld.HelloWorld konnte nicht gefunden oder geladen
    werden
    Vielen, vielen Dank
    Stefan

  35. Stefan Kiesel

    Sie sollten eine HelloWorld.java Datei (Ihr Programmcode, bitte den hier posten) und eine HelloWorld.class Datei haben, die durch die Kompilierung der HelloWorld.java Datei entstanden ist (Bitte den Befehl und das Ergebnis der Kompilierung hier posten). Screenshot von der Verzeichnisstruktur wäre wirklich nützlich, aber evtl. geht es auch ohne.

  36. stefan

    Hallo
    Die HelloWorld.class Datei ist „entstanden“ durch:
    javac C.\JavaProgramme\HelloWorld\de\helloworld\HelloWorld.java

  37. stefan

    Ich fürchte ich versteh nur „Bahnhof“. – Und bitte um Entschuldigung!
    Im Bezug auf den Screenshot denke ich, dass das vielleicht OK war.
    Im Bezug Verzeichnisstruktur muss ich fragen – ist das nicht das was ich geschrieben habe? (C:\JavaPr…..) – ich gehe mal davon aus, dass ich falsch liege. Aber was versteht man dann unter Verzeichnisstruktur?
    Das Gleiche gilt für den Begriff Programmcode. Ist das nicht das mit …>javac … bzw. >java … ?
    Verstehen sie meine Frage? Vielleicht etwas dumm formuliert.
    (sollten sie die Nase voll habe für jetzt, wühre das ganz in Ordnung)
    Stefan

  38. stefan

    Ich probiere den letzten Satz nochmal:
    sollten sie die Nase voll haben für jetzt, würde das ganz in Ordnung sein für mich.

  39. Stefan Kiesel

    Hallo Stefan,

    Screenshot ist wie gesagt hilfreich, ggf. aber auch ersetzbar. Infos die ich benötige:

    1.) Der Pfad, in der die HelloWorld.java Datei liegt (vermutlich C.\JavaProgramme\HelloWorld\de\helloworld)
    2.) Der Pfad, in der die HelloWorld.class Datei liegt (vermutlich ebenfalls C.\JavaProgramme\HelloWorld\de\helloworld)
    3.) Den genauen Inhalt der Datei HelloWorld.java (der Programmcode, den Sie programmiert haben)
    4.) Den Aufruf von javac und java (haben Sie schon gepostet).

    Grüße
    Stefan

  40. stefan

    Guten Abend Stefan,
    auch ich muss mich erstmal für ihre aufgebrachte Geduld bedanken.
    Die Pfade für die zwei Dateien lauten so, wie sie sie geschrieben haben.
    Die Aufrufe für javac und java waren wohl in Ordnung.
    Muss wahrscheinlich der Fehler im Inhalt der Datei HelloWorld.java liegen – den habe ich aber nicht programmiert/geschrieben, sondern kopiert.
    Nach meinem Dafürhalten spricht dennoch etwas dafür, dass es genau dort etwas nicht stimmt, denn, wenn ich ein anderes Anfängerprogramm entsprechend ihren Erklärungen verwende geht alles gut.
    (schreiben, speichern, in Eingabeaufforderung in das entsprechende Verzeichnis wechseln, usw.)
    Es handelt sich um folgendes Programm:
    class MyFirstJavaProgram {
    public static void main(String[] args) {
    System.out.println(„Dies ist mein erstes kleines Javaprogramm.“);
    }
    }
    Ein Gegenargument für die Theorie, das was mit dem HelloWorld-Programm nicht stimmt ist doch eigentlich, dass es kompiliert wurde – oder?
    Noch eine Anmerkung. Die lange Fehlermeldung (siehe Kommentar 8 vom Kilian) kommt nur wenn ich das Programm ausführen will mit dem Befehl java HelloWorld, ansonsten immer die Fehlermeldung
    Fehler: Hauptklasse helloworld.HelloWorld konnte nicht gefunden oder geladen wer
    den – egal ob ich mich in der de\helloworld Ebene befinde oder in einer anderen.
    Grüße Stefan

  41. Stefan Kiesel

    Bitte verwenden Sie mein Beispiel und führen Sie alles Schritt für Schritt aus. Ich schreibe die genauen Anweisungen nicht umsonst ;-). Mein Beispiel unterscheidet sich von Ihrem Code in folgenden Punkten:

    1.) Ihre Hauptklasse sollte immer public sein (class bei Ihnen vs. public class in meinem Beispiel)
    2.) Es wird ein Package definiert (package de.helloworld;)
    3.) Bennen Sie Ihre .java Datei, so wie Ihre Klasse heißt (Ihre Klasse heißt MyFirstJavaProgram und Ihre Datei HelloWorld.java)

    Grüße
    Stefan

  42. stefan

    Hallo Stefan,
    aber das habe ich doch schon längst mehrere Male gemacht – ich meine mit genau dem Programm

    package de.helloworld;

    public class HelloWorld {

    public static void main(String[] args) {
    System.out.println(„Hallo Welt“);
    }
    }
    habe ich mehrmals ihren sklavisch ihren Anweisungen entsprechend gehandelt.
    Erst nachdem ich probiert und probiert und probiert habe, habe ich das andere Programm, ebenso, exakt nach ihren Anweisungen ausprobiert – und das ging eben. Der Zweck, dass ich dieses Programm ausprobierte, war nur der herauszufinden, ob ICH etwas PRIZIPIELL falsch mache.
    Egal!
    Morgen werde ich IHR Beispiel mal von Hand schreiben und werde mich – unabhängig vom Ergebnis – nicht wieder melden!
    VIELEN DANK!

  43. Stefan Kiesel

    Das sollte jetzt keine Kritik sein. Es ist gut und wichtig, dass Sie auch andere Dinge selbstständig ausprobieren. Es ist nur sehr viel einfacher für mich Ihnen zu helfen, wenn Sie sich exakt an meine Vorgaben halten. Wenn es dann nicht klappt, kann man besser auf die Details eingehen, weil man Ihre „Umgebung“ kennt. Sollte es klappen, spricht ja nichts dagegen noch einmal gemeinsam auf die Unterschiede und Probleme zu Ihrer zweiten Testversion einzugehen.

    Sie können sich bei weiteren Problemen oder bei Erfolg natürlich gerne melden.

  44. Jonas

    Wie kann ich die .class datei dann wieder dekompilieren, wenn ich z.B. nochmal was am Code ändern will?

  45. Stefan Kiesel

    Sie sollten Ihren Code immer in .java-Dateien aufbewahren. Diese sind leicht änderbar und bei Bedarf schnell wieder kompiliert. Ein Programm nur in Binärformat aufzuheben ist keine gute Idee.

    Grüße
    Stefan

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.