Zum Inhalt springen

Fehler bei Java compiler


tom24008

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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ß

Link zu diesem Kommentar
Auf anderen Seiten teilen

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. :rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

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. :rolleyes:

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :P) funktionierten verschiedene Schreibstile im relativen, als auch absoluten (Pfad-) Parameter.

test.java

Test.java

TEST.java

TEST.Java

TEST.JAVA

:floet:

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :P) 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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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. :D

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...