# FileOutputStream unter Linux, Ordnerproblem? (In Windows gehts)



## chucknorris (11. Jun 2009)

Hallo,

Mit einem Befehl: 


```
new FileOutputStream( System.getProperty("user.dir")+ "/pdf/test.pdf")
```

erstelle ich eine Datei. Das funktioniert unter Windows, aber nicht unter Linux.
Ich möchte im aktuellen Verzeichnis und ein Ordner darüber eine Datei ablegen. Das Programm erstellt diese aber nicht. Das Programm ist eine ausführbare .jar.

Woran liegt das? Gibt es da etwas Linux-spezifisches, worauf ich achten muss?
Evtl. Pfadangaben? Slashes? ggf. Ordner anlegen und dann reinspeichern?
Es sollte auf jedem Linux laufen...

Ich testete bisher mit einer Live-CD mit Ubuntu Linux. Kann es auch daran liegen?
Kann es auch sein, dass die Dateien unter Linux ganz woanders erstellt werden?

Gruß


----------



## faetzminator (11. Jun 2009)

Lass dir mal System.getProperty("user.dir") ausgeben, was kommt da?


> Evtl. Pfadangaben? Slashes? ggf. Ordner anlegen und dann reinspeichern?


Alle Nicht-Windows-Systeme verwenden /, Windows \ aber kommt auch ganz gut mit / zurecht


> Ich testete bisher mit einer Live-CD mit Ubuntu Linux. Kann es auch daran liegen?


Eine Live-CD hat doch gar keinen schreibbaren Speicher, da nur von der CD gelesen wird, oder täusch ich mich da!?


----------



## Wildcard (11. Jun 2009)

faetzminator hat gesagt.:


> Alle Nicht-Windows-Systeme verwenden /, Windows \ aber kommt auch ganz gut mit / zurecht


Nein, kommt es nicht, Java abstrahiert das allerdings, daher funktioniert / auch auf Windows Systemen.



faetzminator hat gesagt.:


> Eine Live-CD hat doch gar keinen schreibbaren Speicher, da nur von der CD gelesen wird, oder täusch ich mich da!?


Live CDs haben schon beschreibbaren Speicher, den Arbeitsspeicher. Ausserdem kannst du natürlich auch in einer Live CD ein Partition mounten und beschreiben.
Viel kann man nicht sagen da du uns die Exception verschweigst.
Grundsätzlich 3 Möglichkeiten:
1. Die Datei wird erstellt, aber nicht dort wo du sie erwartest 
2. Die Datei wird nicht erstellt weil das Verzeichnis pdf nicht existiert und du es nicht angelegt hast
3. Die Datei wird nicht erstellt weil du dort kein Schreibrecht hast.


----------



## faetzminator (12. Jun 2009)

Wildcard hat gesagt.:


> Nein, kommt es nicht, Java abstrahiert das allerdings, daher funktioniert / auch auf Windows Systemen.


... was heute sozusagen jedes Programm macht und man deswegen für die Systemunabhängigkeit / verwendet  ?


----------



## SlaterB (12. Jun 2009)

auf der Konsole geht 
cd x/y
zumindest auch


----------



## chucknorris (12. Jun 2009)

Es geht jetzt. 

Es lag an an einigen Umlauten im Code.
Unter Eclipse habe ich auf UTF-8 umgestellt und neu compiliert.
Linux hatte damit offensichtlich Probleme.

Gruß


----------



## Wildcard (12. Jun 2009)

chucknorris hat gesagt.:


> Linux hatte damit offensichtlich Probleme.


Was heißt Linux hat damit Probleme? Du hattest vermutlich auf Windows Entwickelt mit cp1252 und ein Linux Eclipse hat dieses Charset gar nicht (proprietäre Microsoft Codepage).
Ich kann dir nur raten generell in UTF-8 zu entwickeln und auf Umlaute im Quellcode komplett zu verzichten.


----------



## chucknorris (12. Jun 2009)

genau das wars!!

Auf dieses Detail muss man erstmal kommen...


----------

