tom24008 Geschrieben 20. Juni 2007 Teilen Geschrieben 20. Juni 2007 Hi, ich mache grade meine ersten Schritte in Java und hänge direkt total fest.... Ich habe aus einer Übungsunterlage JavaDateien runter geladen und soll diese mit Hilfe von Javac übersetzen. Immer wenn ich das versuche kommt folgendes: C:\Dokumente und Einstellungen\Thomas Herseler>javac text.java error: cannot read: text.java 1 error es macht auch keinen unterschied wenn ich den ganzen Pfad eingebe: C:\Dokumente und Einstellungen\Thomas Herseler> javac com\herdt\java14\kap03\Dem oAnwendung.java error: cannot read: com\herdt\java14\kap03\DemoAnwendung.java 1 error Ich mache vermutlich einen totalen Anfängerfehler aber wäre trotzdem super wenn mir einer helfen kann, meine Berufsschullehrer sind nämlich nicht in der Lage es irgendeinem aus der Klasse zu erklären... DANKE DANKE DANKE Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 21. Juni 2007 Teilen Geschrieben 21. Juni 2007 Ganz einfach, die Datei text.java existiert an der Stelle nicht. -Möglichkeit 1: sie liegt woanders -Möglichkeit 2: sie heißt Text.java, java unterscheidet Groß- und Kleinschreibung -Möglichkeit 3: bekannte Dateiendungen werden nicht angezeigt und du hast eine Datei angelegt die text.java.txt heißt Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 21. Juni 2007 Teilen Geschrieben 21. Juni 2007 -Möglichkeit 2: sie heißt Text.java, java unterscheidet Groß- und Kleinschreibung Erm... Das mag zwar so sein, aber der Aufruf findet über das Betriebssystem statt und Windows ist nicht Case Sensitive was Dateinamen angeht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kein-tee Geschrieben 21. Juni 2007 Teilen Geschrieben 21. Juni 2007 Windows ist nicht Case Sensitive was Dateinamen angeht Mag sein, ist Java = Windows? Java kann sehrwohl zwischen Klein- und Großschreibung unterscheiden. Ist definitiv case sensitiv, versuchs mal einfach. @tom24008 Annahme: Die Datei liegt im Pfad C:\Java\Demo Dann wechselst du entweder in dieses Verzeichnis und rufst den Compiler so auf: cd C:\Java\Demo javac Text.java Oder du nimmst den kompletten Pfad: javac C:\Java\Demo\Text.java Viel Spaß, Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 21. Juni 2007 Teilen Geschrieben 21. Juni 2007 Mag sein, ist Java = Windows? Hab ich nie gesagt. Java kann sehrwohl zwischen Klein- und Großschreibung unterscheiden. Ist definitiv case sensitiv, versuchs mal einfach. Ich hab nichts Gegenteiliges behauptet. Ich wollte nur ausdrücken, dass die Groß- und Kleinschreibung bei dem Aufruf egal ist. Denn er ruft den Compiler von Windows auf. Und Windows beachtet keine Groß-/Kleinschreibung bei Dateinamen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tom24008 Geschrieben 21. Juni 2007 Autor Teilen Geschrieben 21. Juni 2007 kann es auch sein, dass ich vergessen hab die classpath variable zu setzen.... ??? :upps Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_Newlukai Geschrieben 21. Juni 2007 Teilen Geschrieben 21. Juni 2007 Ich hab nichts Gegenteiliges behauptet. Ich wollte nur ausdrücken, dass die Groß- und Kleinschreibung bei dem Aufruf egal ist. Denn er ruft den Compiler von Windows auf. Und Windows beachtet keine Groß-/Kleinschreibung bei Dateinamen. Stimmt. Windows nicht. Allerdings übergibst Du den Dateinamen als Parameter an die Anwendung javac. D. h. Windows weiß gar nicht, daß Du eine Datei angibst. Das ist Windows egal. Dementsprechend öffnet Windows diese Datei auch nicht, oder sucht sie oder macht sonst was mit ihr. Windows macht nur eins: Den Parameter - so wie Du ihn angibst - an die Anwendung javac übergeben. Ist der Parameter falsch, interessiert Windows das nicht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 21. Juni 2007 Teilen Geschrieben 21. Juni 2007 Allerdings übergibst Du den Dateinamen als Parameter an die Anwendung javac. D. h. Windows weiß gar nicht, daß Du eine Datei angibst. Darüber könnte man jetzt streiten. Den Windows würde vor Allem bei relativen Pfadangaben den absoluten Directory Pfad mit angeben. Wenn sich dein Java-Compiler in C:\Java\bin\javac befinden würde und du übergibst als Parameter "test.java" ist noch lange nicht entschieden, ob du C:\test.java meinst oder C:\Programme\test.java Wie gesagt, es ist strittig. Ich hatte es jedenfalls ausprobiert - schnell eine Hallo Welt-Anwendung geschrieben und (komischerweise ) funktionierten verschiedene Schreibstile im relativen, als auch absoluten (Pfad-) Parameter. test.java Test.java TEST.java TEST.Java TEST.JAVA :floet: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_Newlukai Geschrieben 21. Juni 2007 Teilen Geschrieben 21. Juni 2007 Den Windows würde vor Allem bei relativen Pfadangaben den absoluten Directory Pfad mit angeben. Wenn sich dein Java-Compiler in C:\Java\bin\javac befinden würde und du übergibst als Parameter "test.java" ist noch lange nicht entschieden, ob du C:\test.java meinst oder C:\Programme\test.java Interessanter Einwand. Allerdings kann ich nicht glauben (zumindest noch nicht) das Windows etwas an den übergebenen Parametern dreht. Dazu müßten die Parameter ja untersucht werden und wenn eine Datei gemeint sein könnte, der Pfad angepaßt werden. Ich glaube eher, daß - auf welchem Weg auch immer - die Anwendung so ausgeführt wird, als sei sie im aktuellen Pfad (in der dann auch die test.java lliegt). Aber das läßt sich ja irgendwo in den Weiten des Netzes ermitteln. Ich hatte es jedenfalls ausprobiert - schnell eine Hallo Welt-Anwendung geschrieben und (komischerweise ) funktionierten verschiedene Schreibstile im relativen, als auch absoluten (Pfad-) Parameter. test.java Test.java TEST.java TEST.Java TEST.JAVA :floet: Hmm. Schon mal schön, daß es läuft. Wenn ich so darüber nachdenke, ist es wohl so, daß ja der Compiler die Bitte an Windows richtet, ein Handle auf die Datei test.java (wie auch immer geschrieben) übergibt. Und da Windows egal ist, wie denn die Datei geschrieben wird, wird die Datei gefunden und ein Handle erstellt. Wahrscheinlich meintest Du das auch die ganze Zeit. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 21. Juni 2007 Teilen Geschrieben 21. Juni 2007 Interessanter Einwand. Allerdings kann ich nicht glauben (zumindest noch nicht) das Windows etwas an den übergebenen Parametern dreht. Dazu müßten die Parameter ja untersucht werden und wenn eine Datei gemeint sein könnte, der Pfad angepaßt werden. Dafür gibt es z.B. in der Commandline die Tab-Taste. Dann wird überprüft, ob ein Wort als Regex irgendwo in einem Dateinamen im aktuellen/angegebenen Verzeichnis steht. Vielleicht simuliert die javac.exe einen Tastendruck auf Tab. Ich glaube eher, daß - auf welchem Weg auch immer - die Anwendung so ausgeführt wird, als sei sie im aktuellen Pfad (in der dann auch die test.java lliegt). Denke ich nicht. Dann müssten die ganzen DLLs etc. auch mit im gleichen Verzeichnis liegen. Außerdem ist dann immernoch die Frage, wie bei einer relativen Pfadangabe verfahren wird. (Absolut ist klar.) Er/Sie/Es (Der Compiler, die Exe, das Programm, what ever.) wird die Datei öffnen und einfach kompilieren. Aber das läßt sich ja irgendwo in den Weiten des Netzes ermitteln. Das wird aber ziemlich tief in den Betriebssystemkern gehen. Im Explorer gehen ja auch relative Pfadangaben. Ich glaube nicht, dass Microsoft das publiziert. Ist mir eigentlich auch egal wie es funktioniert. Hauptsache es geht und damit ist gut. :bimei Edit: kann es auch sein, dass ich vergessen hab die classpath variable zu setzen.... ? Es wäre besser, sie zu setzen, ja. Allerdings kam ja als Fehlermeldung: error: cannot read: text.java Läge es am Classpath, würde einfach nur gesagt werden, dass evtl. zusätzliche Klassen nicht gefunden werden können. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tom24008 Geschrieben 21. Juni 2007 Autor Teilen Geschrieben 21. Juni 2007 also... ich hab die classpath gesetzt, hat aber nichts genützt. Auf groß und klein schreibung habe ich auch geachtet...ich bekomm immer wieder die selber Fehlermeldung: C:\Dokumente und Einstellungen>javac Hallo.java error: cannot read: Hallo.java 1 error Die Datei ist jedoch als fertige datei zum testen vorgegeben, also sollte sie ja auch funktionieren... was mach ich denn da falsch? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kingofbrain Geschrieben 21. Juni 2007 Teilen Geschrieben 21. Juni 2007 was mach ich denn da falsch? Du antwortest nicht auf Jaraz' Hinweise. Liegt die Datei in Dokumente und Einstellungen? Kannst Du sie mal einen ein Verzeichnis liegen, das keine Leerzeichen enthält? Ist die Groß-/Kleinschreibung korrekt? Hast Du die Datei schon mal in einem ASCII-Editor aufgemacht? Was steht drin? Oder ist schon beim Speichern was schief gelaufen? Wenn Du Dich im selben Verzeichnis befindest wie die Datei und keine zusätzlichen Bibliotheken brauchst (ist bei Dir der Fall), dann brauchst Du keinen Classpath setzen. Peter Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 22. Juni 2007 Teilen Geschrieben 22. Juni 2007 Datei einfach mal nach C: kopieren und folgendes eingeben: javac C:\Hallo.java Dann weißt du genau, ob es am Pfad, oder der Datei lag. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.