# Befehl an das Betribssystem



## gino (14. Feb 2005)

Hallo, 
bin ein Java einsteiger, deshalb vielleicht die banale frage.
Wie kann ich in einem Programm Befehle an das Betriebssystem senden.
z.B. für DOS: dir/s
um mir dann die Ergebnisse z.B in ein ArrayList zu speichern?
gintonic333@web.de


----------



## mic_checker (14. Feb 2005)

DU willst also ein Programm von deinem Java Programm aus starten ?

Dann schau dich mal im Forum um nach "Runtime", "exec" etc. Ist wirklich schon so oft gefragt wurden, das du wahrscheinlich eine Flut von Threads finden wirst.

Btw. wieso postest du deine EMail adresse? Glaubst du das jemand dir das Prog schreibt und zuschickt?


----------



## gino (14. Feb 2005)

Danke für den ersten Tipp. Aber wie kann ich das ergebnis (z.B.. von dir) übernehmen, so dass ich es weiterbearbeiten kann?


----------



## Illuvatar (14. Feb 2005)

rat mal obs dazu auch schon zig Threads gibt :/


----------



## gino (14. Feb 2005)

und wo?


----------



## Campino (14. Feb 2005)

http://www.java-forum.org/de/viewtopic.php?t=13325&highlight=runtime+exec

Es gibt da etwas, dass heißt SUCHFUNKTION. Einfach in der obrern Zeile der Linkgruppe unter java-forum.org (da wo auch login ist) auf suchen klicken und schon ist sie da...


----------



## DesertFox (14. Feb 2005)

uff, wenn man runtime und exec bei der Suchfunktion eingibt, kommen ganze 7(!!!!) Seiten ergebnisse, ich denke dazwischen wäre etwas passendes gewesen.


----------



## thE_29 (14. Feb 2005)

naja, ein Wort mehr wäre auch eine Hilfe gewesen 


Wenn man net weiß wonach man sucht, findet man das net so schnell! Such mal unter

runtime and exec and process

Und schau dir die API von Process an, bzw BufferedReader! (bsp wirst genug finden)


----------



## gino (15. Feb 2005)

Also ich hab jetzt eineiges durchgelesen. Habe auch eine Idee wie ich mein Problem angehe: Leite die Ausgabe im Betribssystem auf eine datei:


```
dir/s > a.txt
```

allerdings bekomme ich bei dem Aufruf


```
Runtime.getRuntime().exec("dir > a.txt")
```

die Exception

Fatal exception occurred. Program will exit.

Weiß jemand was ich falsch mache?


----------



## KSG9|sebastian (15. Feb 2005)

```
Runtime.getRuntime().exec("cmd /c dir > a.txt")
```

so gehts,ich würd dir aber empfehlen die datei in nem temp verzeichniss zu speichern. als pfadangabe kannst du %TEMP% verwendet, die verweist auf das temp verzeichniss des jeweiligen users

```
Runtime.getRuntime().exec("cmd /c dir > %TEMP%\\a.txt")
```


----------



## Guest (17. Feb 2005)

Herzlichen Dank,

endlich jemand, der tatsächlich was weiß und nicht nur um den heißen Brei redet.... :toll:


----------



## DesertFox (18. Feb 2005)

Öhh nur weil ich um den heisen Brei geredet habe, heißt das nicht, dass ich nicht weiss, was ich auch tue, nur finde ich, dass man ruhig mal die suchmaschine benutzen darf, und zu deren Gebruach habe ich durch meinen Beitrag angeregt


----------



## gino (21. Feb 2005)

Hi, 
ich komme immer noch nicht weiter....

der Ausdruck:

```
Runtime.getRuntime().exec("cmd /c dir/s > %TMP%",null,pfad)
```

hat mir nicht besonders gefallen.
Erstens musste ich warte bis die Datei fertiggeschrieben ist um sie wieder zu lesen, und zweitens kann ich sie anschließend nicht mehr löschen.
Ich glaub dass letzteres am SecurityManager liegt.

Also habe ich es folgendermaßen probiert:


```
Process p=Runtime.getRuntime().exec("cmd /c dir",null,pfad);
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String z=reader.readLine();
```

Hier passier aber auch gar nichts.

Weiß jemand was ich verkehrt mache?


----------



## foobar (22. Feb 2005)

```
Process p=Runtime.getRuntime().exec("cmd /c dir",null,pfad);
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String buffer = null;

while((buffer = reader.readLine()) != null)
{
   System.out.println(">>"+ buffer );
}
```


----------



## gino (23. Feb 2005)

Dankeschön, hat wunderbar funktioniert... :toll:


----------

