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 Siecd ..
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
oderjava 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.
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
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
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.
Schon wieder hatest du Recht und es hat alles geklappt ::)
Sebastian
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 🙂
Hallo Niko,
das hat mit dem Ordner erstmal nichts zu tun. Das bin-Verzeichnis des JDKs muss in die PATH-Variable mit aufgenommen werden. Siehe hierzu auch Kapitel 01.03 Java installieren bzw. die mittlerweile ausführlichen Kommentare zu diesem Kapitel.
Gruß
Stefan
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
Hallo Hanz,
ich werde den Artikel entsprechend ergänzen.
Gruß
Stefan
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?
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
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 😉
Hallo Yannick,
wird gemacht.
Gruß
Stefan
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.
Hallo Helmut,
Sie haben zuerst einmal ein kleines Problem mit dem „cd“ Befehl in der Windows Konsole. Der korrekte Ablauf müsste so aussehen:
Falls Sie Dann eine weitere Fehlermeldung erhalten, einfach noch einmal nachfragen.
Grüße
Stefan
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
Hallo Helmut,
Sorry, hier lag ein Missverständnis vor. Sie sollen in die Eingabeaufforderung nicht
eingeben, sondern, wenn Sie sich in der Eingabeaufforderung im Verzeichnis
C:\Users\name
befinden, nur den Textcd Dokumente\Projekte
um damit in das VerzeichnisC:\Users\name\Dokumente\Projekte
zu wechseln. Anschließend geben Sie auch nurjavac 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
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
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?
Hallo Sarah,
auf dieses Problem wird im vorhergehenden Kapitel hingewiesen (01.03. Java installieren). Bitte lies doch hier noch einmal nach (auch die Kommentare). Falls dann noch etwas unklar ist, einfach noch einmal nachfragen.
Beste Grüße
Stefan
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
Oh, ich meinte den java-Befehl und nicht javac-Befehl. Dieser hatte wunderbar geklappt!
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
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 ;).
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
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
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
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. 😉
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
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 😉
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
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
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.
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…
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.
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
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
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
Hallo Stefan,
am Besten mal ein Bild deiner Arbeitsumgebung (Verzeichnisstruktur, CMD-Eingabefenster, …) hochladen und hier posten.
Grüße
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
Man kann bspw. via http://imageshack.us/ ein Bild hochladen und dann hier verlinken. Befindet sich in der Verzeichnisstruktur auch nach dem Kompilieren eine C:\JavaProgramme\HelloWorld\de\helloworld\HelloWorld.class Datei? Wie sieht die HelloWorld.java Datei aus?
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
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
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
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.
Hallo
Die HelloWorld.class Datei ist „entstanden“ durch:
javac C.\JavaProgramme\HelloWorld\de\helloworld\HelloWorld.java
Und der Rest?
Da war kein Rest.
Das, was dann erschien war:
C:\Users\Stefan>
Ich meinte den Screenshot, die Verzeichnisstruktur und den Programmcode.
Grüße
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
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.
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
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
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 DateiHelloWorld.java
)Grüße
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!
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.
Wie kann ich die .class datei dann wieder dekompilieren, wenn ich z.B. nochmal was am Code ändern will?
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