Befehl an das Betribssystem

Status
Nicht offen für weitere Antworten.

gino

Mitglied
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

Top Contributor
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

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

DesertFox

Bekanntes Mitglied
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

Top Contributor
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

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

Code:
dir/s > a.txt

allerdings bekomme ich bei dem Aufruf

Code:
Runtime.getRuntime().exec("dir > a.txt")

die Exception

Fatal exception occurred. Program will exit.

Weiß jemand was ich falsch mache?
 

KSG9|sebastian

Top Contributor
Code:
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
Code:
Runtime.getRuntime().exec("cmd /c dir > %TEMP%\\a.txt")
 
G

Guest

Gast
Herzlichen Dank,

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

DesertFox

Bekanntes Mitglied
Ö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

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

der Ausdruck:
Code:
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:

Code:
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

Top Contributor
Code:
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 );
}
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben