# Ausführbare Scriptdatei unter Linux erstellen



## Scruffy (28. Apr 2008)

Ich will eine Scriptdatei in dem KDE/Gnome Autostartordner ablegen. Diese muß die Rechte 755 (rwxr-xr-x) bekommen. Nun habe ich die folgende Methode geschrieben:

```
File f = new File(sAutostart + "ProjectTracker_autostart.sh");
f.setExecutable(true);
f.setReadable(true);
FileWriter fw = new FileWriter(f, false);
fw.write("#!/bin/sh\njavaws http://192.168.99.100/ProjectTracker/ProjectTracker.jnlp");
fw.flush();
fw.close();
```
Leider wird diese Datei mit den rechten -rw-r--r-- erstellt, obwohl f.setExecutable(true); dieser Datei eigentlich die Rechte geben sollte. Weiß jemand eine besse Lösung oder zumindest warum diese Methode nicht klappt?


----------



## Wildcard (28. Apr 2008)

Hast du dafür auch die nötigen Rechte? Die Methode hat einen return value, ist der true, oder false?


----------



## Scruffy (29. Apr 2008)

Die Datei wird vom richtigen Benutzer in der richtigen Gruppe erstellt. Die beiden Values sind aber leider false.


----------



## thE_29 (29. Apr 2008)

```
Runtime.getRuntime().exec("chmod 755 " + f.getAbsolutePath()).waitFor();
```

Probier das mal!


----------



## Wildcard (29. Apr 2008)

Versuch mal so:

```
File f = new File(sAutostart + "ProjectTracker_autostart.sh");
FileWriter fw = new FileWriter(f, false);
fw.write("#!/bin/sh\njavaws http://192.168.99.100/ProjectTracker/ProjectTracker.jnlp");
fw.flush();
fw.close();
f.setExecutable(true);
f.setReadable(true);
```


----------



## thE_29 (29. Apr 2008)

OMG 

Jo, sicher kanns das sein! Er sagt zuerst sei executeable (wenns die Datei zB noch gar nicht gibt, gehts nicht) und überschreibt sie dann mitn FileWriter :bae:


----------



## Scruffy (29. Apr 2008)

Tatsache! Es funktioniert so. Ist auch irgendwie logisch... Danke!

EDIT: Dieser Code vergibt nur r-x für root, will man diese Rechte auch für Benutzer und Gruppen haben, muß man 

```
f.setExecutable(true, false);
f.setReadable(true, false);
```
nehmen.


----------

