# javac Schreibrecht



## Farinlive (5. Mrz 2012)

Ich hoffe Ihr könnt mir helfen.

Ich möchte Java lernen. Habe alles soweit Installiert und auch den Path eingetragen, der lautet:
C:\Program Files (x86)\Java\jdk1.7.0_02\bin

Doch wenn ich bei DOS das hier eingebe kommt sofort eine Fehlermeldung. Ich komm einfach nicht weiter.



Gruß Farinlive


----------



## Michael... (5. Mrz 2012)

Hast Du die java Datei in das bin Verzeichnis des JDK gespeichert?Laut Fehlermeldung kann wegen mangelnden Zugriffsrechten die class Datei nicht in dieses Verzeichnis gespeichert werden.
 Du hast doch das bin Verzeichnis in PATH stehen ==> leg die Java Datei in einem sinnvolleren Verzeichnis mit entsprechenden Zugriffsrechten ab.


----------



## SlaterB (5. Mrz 2012)

ich lehne mich hier wahrscheinlich zu weit aus dem Fenster, aber allgemein guter Tipp gilt: 
Pfade mit Leerzeichen drin sind ungut in einer Welt von Umgebungsvariablen und Konsolen wo Leerzeichen auch Programm-Argumente trennen usw.

deine eigenen Java-Dateien solltest du wirklich unter c:/data/ usw. speichern, 
evtl. Java neu installieren unter einem besseren Pfad, notfalls das ganze Betriebssystem 

oder nimm IDE Eclipse


----------



## Farinlive (5. Mrz 2012)

Also ich hab die Java Datei in bin drin. 
Der komplette Ordner jkd war schreibgeschützt. Das hab ich weggemacht.



> Du hast doch das bin Verzeichnis in PATH stehen ==> leg die Java Datei in einem sinnvolleren Verzeichnis mit entsprechenden Zugriffsrechten ab.



Soll ich mir einfach in em JDK ornder ein eigene Ordner, die Java Datei darein tun und das dann mit dem Path abgelichen ?


----------



## Gast2 (5. Mrz 2012)

Nein, erstell dir in deinem Benutzerverzeichnis einen Ordner "Javaprogramme" mit entsprechenden Unterordner für deine einzelnen Programme.
Dort kannst du dann (vorrausgesetzt PATH entsprechend konfiguriert) mit javac deine Programm kompilieren.


----------



## Michael... (5. Mrz 2012)

Farinlive hat gesagt.:


> Soll ich mir einfach in em JDK ornder ein eigene Ordner, die Java Datei darein tun und das dann mit dem Path abgelichen ?


Nein, leg Dir einen Ordner in Deinem Benutzerverzeichnis an. an PATH brauchst Du da garnichts ändern. In Path stehen alle Pfade drin, die Dein Betriebssystem kennen muss, um irgendwelche Programme oder Bibliotheken zu starten bzw. zu nutzen.
Dadurch, dass das JDK bin Verzeichnis in PATH steht, kannst Du aus jeden Verzeichnis heraus mit 
	
	
	
	





```
java ...
```
 Deine Applikation starten. Wenn Du das nicht gemacht hättest müsstest Du z.B. jedes mal 
	
	
	
	





```
C:\Program Files...\jdk...\bin\java ...
```
 schreiben.


----------



## Farinlive (5. Mrz 2012)

Ich weiß jetz nicht genau was Ihr mit Benutzerverzeichnis meint.
Ich hab auf meiner Festplatte C jetz einen neuen Ordner angelegt und da meine Java-Datei reinkopiert.

Wenn ich bei DOS nun javac HalloWelt.java eingebe, was muss dafur stehen ?
Der neue Ordner mit der Datei oder was ?


----------



## SlaterB (5. Mrz 2012)

> was muss dafur stehen ?
'dafur' gibts nicht, mit 'dafür' wäre es noch schlimmer Satz, meinst du 'davor'?

mache es doch so wie im ersten Posting, wechsle in das Verzeichnis, oder macht das Probleme wie 'javac nicht gefunden'?


----------



## Michael... (5. Mrz 2012)

Farinlive hat gesagt.:


> Ich weiß jetz nicht genau was Ihr mit Benutzerverzeichnis meint.
> Ich hab auf meiner Festplatte C jetz einen neuen Ordner angelegt und da meine Java-Datei reinkopiert.


gibt es unter Win7 nicht ein Verzeichnis 
	
	
	
	





```
C:\Benutzer...
```
?


Farinlive hat gesagt.:


> Wenn ich bei DOS nun javac HalloWelt.java eingebe, was muss dafur stehen ?
> Der neue Ordner mit der Datei oder was ?


Wenn Du 
	
	
	
	





```
javac HalloWelt.java
```
 aus dem Verzeichnis aufrufst in dem die Datei 
	
	
	
	





```
HalloWelt.java
```
 liegt passt das - sofern das bin Verzeichnis des JDK korrekt in PATH steht.


----------



## Farinlive (5. Mrz 2012)

Ja sry meint ich auch.

Und ja leider macht das auch probleme.


----------



## hüteüberhüte (5. Mrz 2012)

Verzeichnis (z.B. unter Dokumente) erstellen,
in das Verzeichnis deine .java-Dateien (Javacode) legen,
Path-Variable um "C:\Program Files\Java\jre6\bin\;C:\Program Files\Java\jdkVersionsnummer\bin\;" erweitern (in bin-Verzeichnissen sind ausführbare Programme),
cmd.exe öffnen, in das Verzeichnis mit den Javacode wechseln (cd),
"javac HelloWorld.java" eingeben (kompilieren),
"java HelloWorld" eingeben (interpretieren, ausführen).

Das Programm an sich könnte so aussehen:

```
public class HelloWorld {

public static void main(String[] args) {

}

}
```

... würde dann aber noch nichts ausgeben.

Es werden nach dem Kompilieren .class-Dateien erstellt (Java-Bytecode), diese können aber nicht unter C:\Program Files erstellt werden (siehe Fehlermeldung)...


----------



## Farinlive (5. Mrz 2012)

ich hab jetz genau gemacht was hüteüberhüte gesagt hat. 
Aber immer wieder kommt diese Fehlermeldung. ;(


----------



## SlaterB (5. Mrz 2012)

wenn du schon so viele Screenshots postest, dann tippe bitte auch 
[c]echo %PATH%[/c] in deine Konsole ein

hast du bedacht eine neue Konsole nach Änderung der Umgebungsvariable zu öffnen?


----------



## hüteüberhüte (5. Mrz 2012)

Poste mal bitte deine Path-Variable und das Verzeichnis, in dem einmal java installiert und in dem das jdk installiert ist

(edit: slater war schneller:shock


----------



## Farinlive (5. Mrz 2012)

Ok werd ich beim nächsten mal machen.

Ich hab gerade Dos geschlossen und wieder geöffnet aber immer noch der gleiche Fehler das javac endweder falsch geschrieben oder nicht gefunden werden konnte.
Ich versteh einfach nicht warum das nicht funktioniert.

Ich hab in meinem Path die Sachen reingeschrieben

C:\Program Files (x86)\Java\jdk1.7.0_02\bin; 
C:\Program Files (x86)\Java\jre6\bin\; 
C:\Program Files (x86)\Java\jre7\bin\ 


Also ich hab jdk1.7.0_02 in C:\Program Files (x86)\Java installiert.
Und jre7 auch in das selbe

Dann habe ich die Java-Datei (HalloWelt.java) in einen Ornder der Java heißt und in Documente ist reingelegt. Das dann bei Dos geöffnet und javac HalloWelt.java eingegeben.
Wieder kommt der Fehler mit javac falsch geschrieben oder konnte nicht gefunden werden


Ich weiß jetz echt nicht mehr was ich machen soll


----------



## faetzminator (5. Mrz 2012)

Es gibt eine FAQ-Eintrag für diese Frage: http://www.java-forum.org/einfuehru...umgebungsvariable-einstellen-windows-7-a.html


----------



## Farinlive (5. Mrz 2012)

faetzminator hat gesagt.:


> Es gibt eine FAQ-Eintrag für diese Frage: http://www.java-forum.org/einfuehru...umgebungsvariable-einstellen-windows-7-a.html



Das hab ich mir ja auch schon durchgelesen und habs genauso gemacht und trozdem funktioniert es nicht.


----------



## SlaterB (5. Mrz 2012)

> Ich weiß jetz echt nicht mehr was ich machen soll



wie wärs damit, dich auf den Anfang deines Postings zu erinnern oder wie lange soll darauf gewartet werden?


Farinlive hat gesagt.:


> Ok werd ich beim nächsten mal machen.


(bezieht sich hoffentlich auf 
> tippe bitte auch [c]echo %PATH%[/c] in deine Konsole ein )




und dass du (wiederholt) nicht verstehst, dass etwas nicht funktioniert, kannst du von heute an für alle Zeit in Postings einsparen,
überlege mal wieviel Tipparbeit du dir selber und Lesearbeit anderen einsparst


----------



## Gossi (5. Mrz 2012)

Versuch mal den Befehl und schau ob du die darunter stehende Zeile bei dir siehst



> C:\Dokumente und Einstellungen\gossmann>echo %JAVA_HOME%
> C:\Programme\Java\jdk1.6.0


----------



## Gast2 (5. Mrz 2012)

JAVA_HOME ist erstmal völlig egal. Interessant ist was im PATH steht, aber das wurde ja auch noch nen paar mal erwähnt


----------



## Gast2 (5. Mrz 2012)

Und das Ding heisst nicht DOS ... 

Das ist das cmd window == Terminal !


----------



## Crian (5. Mrz 2012)

Bei alten Windows-Versionen hieß es so. Wer weiß, was der TE installiert hat.

Das cmd-Fenster mit dem Begriff "Terminal" zu adeln, ist dagegen gewagt


----------



## Gast2 (5. Mrz 2012)

Crian hat gesagt.:


> Das cmd-Fenster mit dem Begriff "Terminal" zu adeln, ist dagegen gewagt



Stimmt wohl ... aber DOS Fenster ist totaler Quatsch ^^ 
Einigen wir uns auf Terminal ähnliches Command Line Fenster *G*


----------



## Gossi (5. Mrz 2012)

Einigen wir uns auf cmd?


----------



## maki (5. Mrz 2012)

kappesf hat gesagt.:


> Und das Ding heisst nicht DOS ...
> 
> Das ist das cmd window == Terminal !


Genauso ist es, DOS starb in den 90er Jahren, lassen wir es ruhen...


----------



## Farinlive (5. Mrz 2012)

Ok ich entschuldige mich ^^ ich nenn es nie wieder DOS.

So nun wieder zu meinem Problem.
In meinem Path steht:
C:\Program Files (x86)\Java\jdk1.7.0_02\bin;  
C:\Program Files (x86)\Java\jre7\bin\


----------



## x22 (5. Mrz 2012)

Nur eine Frage:

Schonmal versucht, den \ nach bin zu entfernen?.. kann zum Fehler führen..


----------



## Farinlive (5. Mrz 2012)

Habe die \ entfernt aber funktioneirt trozdem nicht.

Ich weiß jetz irgendwie nicht mehr was ich machen soll.
Wenn ich das in den bin Ornder leg kommt der eine Fehler mit Zugriff verweigert.

Wenn ich das in ein anderes Verzeichnis packe kommt der Fehler das javac nicht geht.


----------



## SlaterB (5. Mrz 2012)

Farinlive hat gesagt.:


> Ich weiß jetz irgendwie nicht mehr was ich machen soll.


die dritte Erinnerung von mir, endlich mit dem ersten Schritt zur Lösung anzufangen:
echo %PATH%

+ Screenshot, doch besser, wer weiß was du hier abtippst


----------



## x22 (5. Mrz 2012)

SlaterB hat gesagt.:


> die dritte Erinnerung von mir, endlich mit dem ersten Schritt zur Lösung anzufangen:
> echo %PATH%
> 
> + Screenshot, doch besser, wer weiß was du hier abtippst



Dachte er hätte das schon gemacht, falls nicht solltest du den Rat von SlaterB befolgen..


----------



## Farinlive (5. Mrz 2012)

Oh sry, ich dachte ich hätte das schon gemacht.


----------



## faetzminator (5. Mrz 2012)

Jetzt hast du die Datei immer noch in C:\Program~\... Änder das mal endlich! Dein Schreibzugriffsproblem hat nichts mit dem Path zu tun!
Ich würde noch behaupten, dass die Leerzeichen nach den Semikolons Probleme verursachen könnten, entferne diese.
Abgesehen davon ist [c]%JAVA_HOME%[/c] überhaupt nicht unnütz, denn wenn man das korrekt definiert hat, muss man in [c]%PATH%[/c] nur noch [c]%JAVA_HOME%\bin[/c] aufnehmen


----------



## bone2 (5. Mrz 2012)

SlaterB hat gesagt.:


> Pfade mit Leerzeichen drin sind ungut in einer Welt von Umgebungsvariablen und Konsolen wo Leerzeichen auch Programm-Argumente trennen usw.




unter windows ist "Program Files" == "Programme", also obwohl alles in "Program Files" installiert ist, linkt Windows "Programme" immer dahin


```
C:\Programme\Java\jdk1.7.0_02\bin
```
 versteht windows



wenn er die konsole als admin startet, dürft es auch im programme ordner funktionieren, aber dazu ist der nicht gedacht, kopier die .java datei in eigene dateien und ruf dann 
	
	
	
	





```
javac c:\users\deinname\documents\hellworld.java
```
 auf


----------



## faetzminator (5. Mrz 2012)

bone2 hat gesagt.:


> ```
> C:\Programme\Java\jdk1.7.0_02\bin
> ```
> versteht windows



Und welches System soll das zur Hölle können? Entweder ist die Antwort pauschalisiert oder absolut falsch. Zumindest in XP SP2/3 gehts nicht. Abgesehen davon greift der TO nicht auf [c]Program Files[/c] zu, sondern auf [c]Program Files (x86)[/c].


----------



## Farinlive (5. Mrz 2012)

Meint Ihr so ?


----------



## faetzminator (5. Mrz 2012)

[c]echo %PATH%[/c], nicht [c]%PATH%[/c].
Startest du die cmd jeweils neu? Ansonsten wird die geänderte Variable nicht übernommen. Und hau die Leerzeichen nach den Semikolons weg (in [c]%PATH[/c]), dann müsste es klappen.


----------



## bone2 (5. Mrz 2012)

faetzminator hat gesagt.:


> Und welches System soll das zur Hölle können? Entweder ist die Antwort pauschalisiert oder absolut falsch. Zumindest in XP SP2/3 gehts nicht. Abgesehen davon greift der TO nicht auf [c]Program Files[/c] zu, sondern auf [c]Program Files (x86)[/c].



win 7 mountet/linkt das (und ich meine beide).

@TE nu musst du ihm wieder sagen wo javac leigt, also

```
c:\programme\jdk7\bin\javac helloworld.java
```
hast du je schonmal die konsole benutzt?


----------



## irgendjemand (5. Mrz 2012)

noch so als anmerkung : nimm 1) das 6er mal ausm path und 2) deinstallier es komplett ...
ansonsten kommt wieder unser lieblingsfehler mit der unsupported major version weil du i-was mit J7 compilest ... es aber mit J6 ausführen willst ...


----------



## faetzminator (5. Mrz 2012)

bone2 hat gesagt.:


> win 7 mountet/linkt das (und ich meine beide).


Also einfach eine pauschalisierte Fehlaussage deinerseits.



bone2 hat gesagt.:


> @TE nu musst du ihm wieder sagen wo javac leigt [...]



Ebenfalls falsch. Das Ziel ist, das Binaryverzeichnis von Java in die Path-Variable zu bringen.


----------



## irgendjemand (5. Mrz 2012)

faetzminator hat gesagt.:


> Also einfach eine pauschalisierte Fehlaussage deinerseits.



hmm ... also ich weis nicht ob du es ausprobiert hast ... aber unter meinem Win7Ultix64 ist CMD *um euch mal zu berichtigen : der korrekte name ist *Befehlszeileninterpreter** in der lage den pfad "C:\Programme\" auf "C:\Program Files\" ordnungsgemäß zu mappen ...

das hat was mit dem seit NT6 *vista* im NTFS und dessen driver integriertem I18N zu tun ... und lässt sich in der registry manipulieren ...


----------



## Farinlive (5. Mrz 2012)

DANKE faetzminator !!!

Es lag an den s***** leerzeichen. Boar endlich klappt es.

Danke an alle. :applaus::toll:


----------



## bone2 (5. Mrz 2012)

faetzminator hat gesagt.:


> Also einfach eine pauschalisierte Fehlaussage deinerseits.


xp ist tot. zumindest bei mir. pauschalisiert lass ich mir gefallen, aber falsch is es nicht. war richtig, der (x86) ordner wird im 64bit w7 allerdings nicht gemappt, nur der 64bit "program files" ordner




faetzminator hat gesagt.:


> Ebenfalls falsch. Das Ziel ist, das Binaryverzeichnis von Java in die Path-Variable zu bringen.








was ist daran falsch?


----------



## SlaterB (5. Mrz 2012)

boah sind hier viele Postings, ich verstehe davon auch nur die Hälfte, um mal tröstend beizustehen 

ob mit Programme/ Program Files/ Program Files (x86) noch was zu schaffen ist weiß ich nicht,

wenn du mir unter den vielen unterschiedlichen Stimmen noch zuhörst, dann als eine Strategie:
verschiebe testweise Java, so dass du als Pfad
c:\Java\jdk1.7.0:02\bin
in Path eintragen musst oder noch kürzer
c:\Java\jdk1702\bin

ob die Installation dann noch geht ist eine Frage, kurzfristig sollte es bei diesem Pfad zusammen mit PATH-Umgebungsvariable aber klappen mit gefundenen javac-Programm,
bei ernsten Problemen evtl. Java neu installieren

vielleicht sind aber unter den anderen Vorschlägen weniger dramatische 
(edit: wenn schon fertig, umso besser)


----------



## faetzminator (5. Mrz 2012)

bone2 hat gesagt.:


> was ist daran falsch?



Ich kann das Bild nicht sehen, aber ich wollte darauf hinaus, dass wenn du den [c]bin[/c] Ordner in PATH hast, nicht mehr den ganzen Pfad zur java/javaw/javac/... eingeben musst - sofern du natürlich die in PATH eingetragene Version verwenden willst.


----------



## bone2 (5. Mrz 2012)

faetzminator hat gesagt.:


> Ich kann das Bild nicht sehen



konsole:

```
C:\Users\david.schmidt\Documents>c:\programme\java\jdk1.6.0_23\bin\javac Test.java

C:\Users\david.schmidt\Documents>java Test
hello world

C:\Users\david.schmidt\Documents>
```

klar sind korrekt eingestelle pfade praktisch, aber nicht nötig oder "richtiger"


----------



## hüteüberhüte (5. Mrz 2012)

Öffne das java- Verzeichnis ("C:\Program Files\Java\jre6\") im Windows- Explorer und kopiere den Pfad mit Shift+ Rechtsklick+ "Als Pfad kopieren"...


----------



## faetzminator (5. Mrz 2012)

bone2 hat gesagt.:


> klar sind korrekt eingestelle pfade praktisch, aber nicht nötig oder "richtiger"



Wieso nicht? Wenn man [c]%JAVA_HOME%[/c] verwendet, muss man nicht mal [c]%PATH%[/c] anpassen. Man muss also nichts anpassen, was nicht einer Version unterliegt (was mir AFAIR noch nie untergekommen ist).


----------



## Gossi (6. Mrz 2012)

faetzminator hat gesagt.:


> Und welches System soll das zur Hölle können? Entweder ist die Antwort pauschalisiert oder absolut falsch. Zumindest in XP SP2/3 gehts nicht. Abgesehen davon greift der TO nicht auf [c]Program Files[/c] zu, sondern auf [c]Program Files (x86)[/c].



Den umbruch hat Windows mit Win 7 gemacht, intern arbeitet windows mit C:\Programme\, im Explorer und in der Konsole zeigt er jedoch C:\Programm Files\ bzw. C:\Program Files (x86)\.

Windows arbeitet ja auch mit dem Synonym user und zeigt trotzdem faetzminator, oder Gossi oder what else...


----------



## ARadauer (6. Mrz 2012)

faetzminator hat gesagt.:


> Ich würde noch behaupten, dass die Leerzeichen nach den Semikolons Probleme verursachen könnten, entferne diese.


Ich denke daran liegst.... die frage ist wo die dinger überhaupt her kommen... hast du die alle selber rein gemacht?

Ich verseth das Problem irgendwie nicht...
einfach hinten ;Pfad zum JDK bin Verzeichnis anhängen fertig...


----------



## SlaterB (6. Mrz 2012)

faetzminator hat gesagt.:


> Wieso nicht? Wenn man [c]%JAVA_HOME%[/c] verwendet, muss man nicht mal [c]%PATH%[/c] anpassen. Man muss also nichts anpassen, was nicht einer Version unterliegt (was mir AFAIR noch nie untergekommen ist).


um auch diesen Punkt hier zu erwähnen, klingt etwas komisch bei dir:
JAVA_HOME ist nur für Eclipse interessant oder sonstige höhere Tools, vielleicht Java im Browser,
für javac-Kommando in Konsole ist die JAVA_HOME-Umgebungsvariable unerheblich


----------



## faetzminator (6. Mrz 2012)

Nicht, wenn man in [c]%PATH%[/c] einfach [c];%JAVA_HOME%\bin[/c] anhängt, da man [c]%JAVA_HOME%[/c] eh ab und zu anpassen muss, dann entfällt das anpassen von [c]%PATH%[/c] - denn Faulheit siegt!


----------



## Gossi (6. Mrz 2012)

faetzminator hat gesagt.:


> Faulheit siegt!


[OT]Super Lied von J.B.O.[/OT]

@ Topic:
1. Lösche die Leerzeichen aus dem Path
2. Wenns dann nicht läuft versuchs so wie faetzminator geschrieben hat, mit %JAVA_HOME%\bin
3. Wenn das auch nicht hilft >> Installiere Java neu (nach C:\Java\ z.B.)
4. Passe den %PATH% und %JAVA_HOME% an, wenns dann immer noch nicht läuft
5. Installiere eine IDE und versuch es damit

[IRONIE]Und wenn es dann IMMER noch nicht läuft....kauf dir nen Strick [/IRONIE]


----------



## ARadauer (6. Mrz 2012)

Wenn das nicht hilft, lass dir von einem Kollegen vor Ort oder über teamview helfen. Das thema ist echt müsam wenn man nicht vorm rechner sitzt....


----------



## faetzminator (6. Mrz 2012)

faetzminator hat gesagt.:


> [...] Und hau die Leerzeichen nach den Semikolons weg (in [c]%PATH[/c]), dann müsste es klappen.





Farinlive hat gesagt.:


> Es lag an den s***** leerzeichen. Boar endlich klappt es.


----------



## SlaterB (6. Mrz 2012)

faetzminator hat gesagt.:


> Nicht, wenn man in [c]%PATH%[/c] einfach [c];%JAVA_HOME%\bin[/c] anhängt, da man [c]%JAVA_HOME%[/c] eh ab und zu anpassen muss, dann entfällt das anpassen von [c]%PATH%[/c] - denn Faulheit siegt!



aha, guter Plan, dass vorher nicht zu erwähnen, auch wenn es Standard sein mag,
aber ob z.B. Farinlive das so wußte?

"beim Verlassen des Hauses den Kühlschrank abschließen"
-
"??"
-
"natürlich nur wenn die Haustür mit dem Kühlschrank elektronisch verbunden ist"


----------



## Gossi (6. Mrz 2012)

faetzminator hat gesagt.:


>



Shame on my Haupt, warum wurde das Thema auch nicht als Erledigt markiert.....


----------



## Farinlive (6. Mrz 2012)

Danke für eure Hilfe erstmal.

Alles hat funktioniert, es lag an den Leerzeichen, ich hab die irgendwie in den Path reingekloppt.
Alles gut ^^ 

Danke nochmal an alle


----------



## faetzminator (6. Mrz 2012)

SlaterB hat gesagt.:


> aha, guter Plan, dass vorher nicht zu erwähnen, auch wenn es Standard sein mag,
> aber ob z.B. Farinlive das so wußte?



Ja, hab ich bereits geschrieben  :


faetzminator hat gesagt.:


> Abgesehen davon ist [c]%JAVA_HOME%[/c] überhaupt nicht unnütz, denn wenn man das korrekt definiert hat, muss man in [c]%PATH%[/c] nur noch [c]%JAVA_HOME%\bin[/c] aufnehmen


----------



## SlaterB (6. Mrz 2012)

nun gut


----------

