# Testprogramm kann nicht compiliert werden - javac findet file nicht



## Creat!ve (7. Aug 2010)

Hallo,

da ich ein absoluter Java-Anfänger bin und die Möglichkeit, schnell Hilfe holen zu können, nutzen möchte, habe ich mich heute hier angemeldet! 

Ich arbeite mit einem Buch ("Java von Kopf bis Fuß") und möchte nun wie im Buch erläutert meine erste Anwendung schreiben:


```
public class MeineErsteAnwendung {

	public static void main (String[] args) {

		System.out.println ("Ich herrsche!");
		System.out.println ("über die Welt");

	}

}
```

Diesen Quellcode habe ich mit dem Text-Editor von Windows erstellt und als .java Datei unter dem Namen "MeineErsteAnwendung" in dem \bin Ordner innerhalb des Java SDK-Verzeichnisses abgespeichert. 

Wenn ich nun in der Eingabeaufforderung "javac MeineErsteAnwendung.java" eingebe und Enter drücke, kommt folgende Fehlermeldung: (Die weißen Kästen sollen meinen Namen verdecken) ;-)







Ich habe auch einen Eintrag zu meiner PATH-Umgebungsvariable hinzugefügt, der auf das Verzeichnis \bin innerhalb des Haupt-Java-Verzeichnisses verweist.

Windows 7 64bit
Java SDK Version 1.6.0_21


Ich hoffe, meine Frage ist nicht allzu peinlich/blöd und ihr könnt mir helfen.

Gruß Creat!ve


----------



## Gast2 (7. Aug 2010)

du musst den quellcode nicht im bin ordner des jdk speichern 

In der console bist du grad im verzeichnis c:\users\deinName\. Wenn du dort dann javac MeineErsteAnwendung.java ausführst muss in dem ordner auch dein quellcode liegen.


----------



## XHelp (7. Aug 2010)

Ne, so läuft das nicht.
Du musst die .java Datei woanders abspeichern (z.B. c:\projekte\MeineErsteAnwendung.java).
Dann musst du in dieses Verzeichnis wechseln 
	
	
	
	





```
CD c:\projekte\
```
Und dann kannst du 
	
	
	
	





```
javac
```
 benutzen
(du kannst auch die Pfade angeben etc, aber erstmal nur soweit)


----------



## kay73 (7. Aug 2010)

Speichere das File "MeineErsteAnwendung.java" in 
	
	
	
	





```
C:\Users\<WeisseKästchen>\
```
 und nicht im SDK Pfad. Achte darauf, dass keine 
	
	
	
	





```
package
```
-Anweisung in der Datei ist. Prüfe, ob danach "MeineErsteAnwendung.class" im selben Verzeichnis ist. Dann kannst Du es mit 
	
	
	
	





```
java MeineErsteAnwendung
```
 starten.


----------



## Creat!ve (7. Aug 2010)

Danke für eure schnellen Antworten!

Das war ja wirklich einfach. Ich herrsche nun über die Welt 

Jeder fängt klein an


----------



## Schorty (30. Apr 2011)

Hallo zusammen,

ich habe mich hier gerade in diesem Forum angemeldet, in der Hoffnung hier eine hilfsbereite Community zu finden, die mir unter die Arme greift, damit ich Java lernen kann =)

Kurz noch vorweg: Ich kann Programmieren, nur eben Java noch nicht *g*

Also nun zu meinem Problem:
Ähnlich wie dem des Threaderstellers, schmeißt mir javac den "File not found"-Error aus. Ist es so, dass ich die *.java-Files im User-Verzeichnis liegen haben MUSS, oder kann ich mir dafür auch ein anderes Verzeichnis anlegen, dass automatisch ausgelesen wird? Das anpassen der Path-Variable hat da bei mir nicht geholfen, und da der cd-Befehl in meiner Konsole irgendwie nicht funktionieren will, bin ich (wenn ich die Konsole als Admin ausführe - Windows 7 64bit) gezwungen, die Datein im System32-Ordner zu hinterlegen, was ich äußerst bescheiden finde. 

Gibt es da eine Möglichkeit oder muss ich mich damit abfinden? Ich bin schon seit grob 3 Stunden am googlen, aber mein bester Freund will mir da keine eindeutige Antwort geben.

Gruß,
Schorty


----------



## XHelp (30. Apr 2011)

Was *genau* machst, was genau willst du erreichen, was *genau* hast du schon probiert? Und am besten immer fleißig Screenshots beifügen.


----------



## Schorty (30. Apr 2011)

Ich möchte *.java-Files nicht immer in einem bestimmten Verzeichnis haben müssen, um sie zu kompilieren. Im Moment muss ich sie dafür im System32-Ordner hinterlegen und das mache ich nur ungern. Dass ich mir ein Verzeichnis aussuchen sollte, wo ich die Files zum Kompilieren hinterlege, ist ja kein Problem, aber wie sage ich dem JavaCompiler, wo er suchen soll? Ich bekomme immer folgende Fehlermeldung in der Konsole:

C:\Windows\system32>javac Hello.java
javac: file not found: Hello.java
Usage: javac <options> <source files>
use -help for a list of possible options

Was ich bisher versucht habe, um das zu beheben war das Anpassen der Path-Variable. Außerdem hab ich versucht das momentane Verzeichnis in der Konsole via cd <directiory> zu ändern, was aber ebenfalls keinen Erfolg brachte(Weil sich das Verzeichnis mit dem Befehl nicht verändern lässt).

Ich habe gelesen, dass es mit Batch-Datein funktionieren soll. Allerdings habe ich davon mal so überhaupt keine Ahnung *g*

Deshalb meine Frage, ob es überhaupt anders geht, als die .java-Datein zum Kompilieren in besagtes bestimmtes Verzeichnis (System32) zu kopieren.


P.S.: Ich bin begeistert, wie schnell man hier Antwortet =)


----------



## Dekker (1. Mai 2011)

Ähm was? Du gehst in der Console mittels cd Befehl in den Ordner in dem sich deine .java Datei befindet. Ich hab noch nie gesehen das jemand auf die Idee kam das im Windows Systemordner zu machen :autsch:.

Außerdem wird es nichts bringen die Pathvariable anzupassen, denn die ist dafür da, dass Windows javac findet und nicht deine zu compilierenden Dateien... Hast du schonmal "cd .." benutzt? Damit geht er ein Verzeichnis in der Verzeichnisstruktur höher. (wäre bei dir dann "C:\Windows"). Mittels "dir" kannste dir anzeigen lassen welche Dateien und Ordner sich im derzeitigen Ordner befinden. Benutzt du eigentlich die Eingebeaufforderung? Damit startet man auch nicht in "C:\Windows\System32", denn irgendwie musst du da ja mal hingekommen sein.


----------



## Fu3L (1. Mai 2011)

Hast du es mal mit pushd versucht? Zum Beispiel so:


```
pushd D:\Programmieren
```

cd wechselt nicht die Partitionen (zumindest bei mir^^).

Batch files sind relativ einfach. Du erstellst ein Textdokument im Explorer und änderst den namen von "Neues Textdokument.txt" in "start.bat" oder wie es dir beliebt. Danach kannst du dort Befehle hinterlegen (mit einem Programm wie Notepad oder sehr zu empfehlen Notepad++):


```
javac Programm.java
java Programm
pause
```

pause ist nützlich, falls das Programm nach einer Ausgabe direkt terminiert.. Sonst schließt sich nämlich das Fenster direkt. Beim Batch-file befindet sich der "pointer" der Konsole auch gerade in dem Verzeichnis, in dem das File liegt, so kannst du dort befindliche Dateien ohne zusätzliche Pfadangabe ansprechen.


----------



## Schorty (1. Mai 2011)

pushd - Den Befehl kannte ich noch gar nicht. Der hat auf Anhieb funktioniert! Vielen Dank für den Tip! Das hilft mir schonmal enorm =)
Die Geschichte mit der Batch-Datei werde ich mir morgen mal genauer ansehen. Dazu fehlt mir gerade der Nerv *g*

Aber bis herher schonmal einen riesigen Dank von mir! *freu*


@Dekker:
Okay, das mit der Path-Variable habe ich inzwischen auch schon fast erahnt, aber so hab ich zumindest die Gewissheit, dass ich da scheinbar alles richtig gemacht habe *g*
Ja, ich benutze die Eingabeaufforderung (cmd.exe), aber mit dem cd-Befehl konnte ich das Verzeichnis nicht wechseln... Weiß der Geier wieso, aber mit dem pushd gings jetzt. Außerdem habe ich festgestellt, dass es auch hilft, wenn man sich ne Verknüpfung zur cmd.exe macht und dieser in den Eigenschaften sagt, dass sie im Java-Ordner ausgeführt werden soll. Dann bin ich direkt im richtigen Verzeichnis. Jetzt hab ich nur ein Problem, mit den Ordnerrechten.. Der ist schreibgeschützt und aus irgendwelchen unerfindlichen Gründen kann ich das auch nicht ändern (ja, ich bin als Admin angemeldet). Das hat zur Folge, dass der Compiler keine neuen Datein anlegen kann. Aber da finde ich bestimmt noch irgendeine Lösung für.


----------



## Fu3L (1. Mai 2011)

Schorty hat gesagt.:


> Außerdem habe ich festgestellt, dass es auch hilft, wenn man sich ne Verknüpfung zur cmd.exe macht und dieser in den Eigenschaften sagt, dass sie im Java-Ordner ausgeführt werden soll. Dann bin ich direkt im richtigen Verzeichnis. Jetzt hab ich nur ein Problem, mit den Ordnerrechten.. Der ist schreibgeschützt und aus irgendwelchen unerfindlichen Gründen kann ich das auch nicht ändern (ja, ich bin als Admin angemeldet). Das hat zur Folge, dass der Compiler keine neuen Datein anlegen kann. Aber da finde ich bestimmt noch irgendeine Lösung für.



Ich habe das Gefühl, dass es das gleiche Problem wie in diesem Thread ist. Du brauchst nicht im Ordner entwickeln, wo du Java installiert hast. Entwickle doch lieber in C:\Java oder D:\Java oder so.. Dann sind die Pfade auch schön kurz und (für .jar-files teilweise relevant) ohne Leerzeichen.
Wenn du den bin-Ordner deiner Java Installation in der PATH Variablen hast, kannst du so halt auch java und javac aufrufen ohne den Pfad anzugeben.


----------



## Schorty (2. Mai 2011)

Danke dir Fu3L!

Jetzt läuft alles so, wie ich mir das vorgestellt habe. Ich hab mir jetzt auch nen extra Verzeichnis angelegt, wo ich die ganzen Files hinterlegen und kompilieren kann. 

Gruß,
Schorty


----------

