Runtime.getRuntime().exec()

Status
Nicht offen für weitere Antworten.

walidadil

Mitglied
Hallo Java experten ,
ich will von Java ein CommandLine ausführen , wenn ich das mit Dos Box ausführe , funktioniert wunderbar .
aber wenn ich das durch Runtime.getRuntime().exec() funktioniert irgendwie nicht , ich weiss nicht was ich falsch mache.

Java:
Process p = Runtime.getRuntime().exec("C:\\Program Files\\IXOS\\bin\\dsClient <client.cmd > bh.log" );

mit < eingabe umleitung bzw. > ausgabe umleitung.

ich bin sehr Dankbar für jedes Hinweis.
 

KlinCh

Mitglied
exec() führt nur _ein_ programm aus.
Die Umleitungen sind aber Funktionen der CMD und werden somit nicht funktionieren.

Du könnstest versuchen cmd.exe zu starten und dann als paramter den gesammten befehl zu geben. (ich weiss jetzt nicht wie das bei windows aussieht, aber unter linux könntest du zum beispeil mit "sh -c 'ech test> test.txt'" es machen.
 

walidadil

Mitglied
Hi ,
Danke für deine schnelle Antwort , ich habe auch versucht cmd.exe zu starten und dann als paramter den gesammten befehl zu geben aber leider hat es auch nicht funktioniert , ich habe so probiert :
Java:
Process p = Runtime.getRuntime().exec("cmd /s /c \"\"C:\\Program Files\\IXOS\\bin\\dsClient.exe\" <client.cmd >C:\\iuvatec\\archive.log\"");

ich arbeite schon seit 2 Tagen dran aber erfolglos :noe: .
Danke im vorraus an alle.
Gruß
 

Wildcard

Top Contributor
Process Objekte haben InputStreams, OutputStreams und ErrorStreams auf die du Zugreifen kannst. Es steht dir also frei mit diesen Streams zu tun was auch immer du möchtest.
 

musiKk

Top Contributor
Also wenn, dann als Array. Parameter werden standardmäßig an Whitespace getrennt, das ist hier aber nicht richtig, da das Kommando, welches an cmd übergeben werden soll, auch Leerzeichen enthält.
Code:
exec(new String[]{"cmd", "/s", "/c", "\"\"C:\\Program Files\\IXOS\\bin\\dsClient.exe\" <client.cmd >C:\\iuvatec\\archive.log\""};
Oder so.

Würde aber nach Möglichkeit auch den Vorschlag von Wildcard bevorzugen. Die Streams für Ein- und Ausgabe erhältst Du aus dem Prozess-Objekt, welches von exec() erzeugt wird.
 

walidadil

Mitglied
Hi ,
ich habe mit erste vorschlaglösung versucht aber leiderhat es nicht funktioniert und ich kriege auch keine Fehlermeldung .
zweite Vorschlaglösung habe ich gemacht aber
:
Java:
public class Test {
	  public static void main(String[] args) throws Exception {
		
		  try{
		  
		  Runtime rt = Runtime.getRuntime();
		  Process proc = rt.exec("C:\\Program Files\\IXOS\\bin\\dsClient.exe <client.cmd >C:\\iuvatec\\koko.log"); 
		  InputStream stderr = (InputStream) proc.getErrorStream();
		  InputStreamReader isr = new InputStreamReader(stderr);
		  BufferedReader br = new BufferedReader(isr);
		  String line = null ;
		  System.out.println("<ERROR>");
		  while ((line = br.readLine())!= null )
			  System.out.println(line);
		  }
		  
		  catch (Throwable t) {
			t.printStackTrace();  
		  }
		  
		  		

	  }
	}

und ich kriege folgende Fehlermeldung :
Java:
java.io.IOException: CreateProcess: C:\Program Files\IXOS\bin\dsClient.exe <client.cmd >C:\iuvatec\koko.log error=193
	at java.lang.ProcessImpl.create(Native Method)
	at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
	at java.lang.ProcessImpl.start(ProcessImpl.java:30)
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:451)
	at java.lang.Runtime.exec(Runtime.java:591)
	at java.lang.Runtime.exec(Runtime.java:429)
	at java.lang.Runtime.exec(Runtime.java:326)
	at Test.main(Test.java:24)

Gruß
 

musiKk

Top Contributor
Neja, der Name des Prozesses hört nach dem ".exe" auf. Das "<"- und ">"-Gedings ist doch gerade die Umlenkung der Ein- und Ausgabeströme, die Du in Java mittels getInputStream() und getOutputStream() realisieren sollst (bzw. kannst).
 

walidadil

Mitglied
Hi musikK,
Danke für deine schnelle antwort , ich bin noch java anfänger , kannst du mir vielleicht irgend klein java code beispiel geben ?

Danke im Vorraus

Gruß
 

Saxony

Top Contributor
Hiho,

Java:
public class RuntimeExecute {

	public void execute(String aCommand) {

		try {

			Runtime rt = Runtime.getRuntime();

			Process proc = rt.exec(aCommand);

			ExecuteStream errorStream = new ExecuteStream(proc.getErrorStream());

			ExecuteStream outputStream = new ExecuteStream(proc
					.getInputStream());

			errorStream.start();
			outputStream.start();

		} catch (Throwable t) {

			t.printStackTrace();
		}
	}

	public static void main(String[] args) {

		RuntimeExecute exec = new RuntimeExecute();

		exec.execute("cmd.exe /C dir");

		exec.execute("cmd.exe /C set");
	}
}

class ExecuteStream extends Thread {

	InputStream is;

	ExecuteStream(InputStream aIS) {

		super("Console");
		this.is = aIS;
	}

	public void run() {

		try {

			InputStreamReader isr = new InputStreamReader(this.is);
			BufferedReader br = new BufferedReader(isr);
			String line = null;

			while ((line = br.readLine()) != null) {

				System.out.println(line);
			}
		} catch (IOException ioe) {

			ioe.printStackTrace();
		}
	}
}

Ansonsten kannste auch mal hier weiterlesen:

When Runtime.exec() won't - JavaWorld

bye Saxony
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Registry Autostart Eintrag ertstellen mit Java (Runtime.getRuntime().exec()) Allgemeine Java-Themen 0
Thallius Runtime.getRuntime().exec " escapen? Allgemeine Java-Themen 9
N Runtime.getRuntime().exec Problem mit find Allgemeine Java-Themen 3
I Runtime.getRuntime().exec Problem Allgemeine Java-Themen 4
truesoul Runtime.getRuntime().exec nebenbei ausführen Allgemeine Java-Themen 12
Z Runtime.getRuntime().exec-Problem Allgemeine Java-Themen 4
M Runtime.getRuntime().exec(cmd); auf windows ... Allgemeine Java-Themen 2
X Wann ist Runtime.getRuntime().exec mit Copy fertig? Allgemeine Java-Themen 10
G Output eines über Runtime.getRuntime.exec gestarteten Jars Allgemeine Java-Themen 6
C JApplet und Runtime.getRuntime().exec() Allgemeine Java-Themen 2
M Probleme Runtime.getRuntime().exec(Start.cmd); Allgemeine Java-Themen 10
K Probleme mit Runtime.getRuntime().exec Allgemeine Java-Themen 6
A Runtime.getRuntime().exec mit Warte auf Beendigung - Wie? Allgemeine Java-Themen 7
R Problem mit Runtime.getRuntime().exec() Allgemeine Java-Themen 4
F Runtime.getRuntime().exec mit Linux und Leerzeichen Allgemeine Java-Themen 3
B Probleme mit Runtime.getRuntime().exec("cmd.exe") Allgemeine Java-Themen 4
M Runtime.getRuntime().exec(txt_rsync_option.getText()); Allgemeine Java-Themen 12
M Rückgabewert von Runtime.getRuntime().exec() Allgemeine Java-Themen 2
D Problem mit Runtime.getRuntime().exec() Allgemeine Java-Themen 14
L Runtime.getRuntime.exec() Allgemeine Java-Themen 7
X Problem mit Runtime.getRuntime().exec("cls"); Allgemeine Java-Themen 18
S Runtime.getRunTime().exec("jar cvf .) hängt sich auf Allgemeine Java-Themen 3
M Runtime.getRuntime().exec() - Fehler abfangen Allgemeine Java-Themen 5
B Problem mit Runtime.getRuntime().exec() Allgemeine Java-Themen 4
G Runtime.getRuntime().exec("cmd /c START") Allgemeine Java-Themen 3
S Runtime.getRuntime()... Allgemeine Java-Themen 6
G Runtime.getRuntime() Allgemeine Java-Themen 10
M this application requires a java runtime environment 1.8.0 Allgemeine Java-Themen 2
S Gibt es eine Moeglichkeit die Runtime Ausführung zu analysieren..? Allgemeine Java-Themen 7
J Verschiedene Runtime Versionen gleichzeitig? Allgemeine Java-Themen 12
K Threads Runtime und Process Probleme Allgemeine Java-Themen 3
H Runtime reagiert erst wenn Programm abbricht Allgemeine Java-Themen 1
J Probleme mit der Java-Runtime Allgemeine Java-Themen 10
M Runtime.exec() verursacht auf manchen Systemen Probleme - Ursache unklar Allgemeine Java-Themen 2
S Command funktioniert in Kommandzeile aber nicht mit ProcessBuilder bzw. Runtime.exec auf MAC Allgemeine Java-Themen 3
D Java Objekt als Service in Runtime registrieren Allgemeine Java-Themen 1
W Threads Mit Thread und Runtime externe Programme öffnen Allgemeine Java-Themen 0
C Runtime Problem Allgemeine Java-Themen 1
P programm öffnen mit der runtime Allgemeine Java-Themen 9
W JavaDoc Runtime-Exceptions: Wie sinnvoll anzeigen? Allgemeine Java-Themen 14
P Runtime bzw. RAM-Auslastung eines Prozesses Allgemeine Java-Themen 9
M Befehl in Runtime ausführen der Eingabe benötigt Allgemeine Java-Themen 3
aze Jar ausführen über Runtime.execute funktioniert nicht Allgemeine Java-Themen 4
T Bluescreen bei Runtime.exec(); Allgemeine Java-Themen 8
G Runtime.exec beendet Programm unter Linux, wenn Java Programm beendet wird Allgemeine Java-Themen 3
N Runtime.exec() Exception Problem Allgemeine Java-Themen 3
N Runtime.exec() Allgemeine Java-Themen 7
S Runtime Exceptions in eine Datei schreiben Allgemeine Java-Themen 7
N Internet Explorer mit bestimter Java Runtime starten Allgemeine Java-Themen 2
J Runtime.exec setzt Fokus auf Frame Allgemeine Java-Themen 2
V Probleme mit Runtime.exec() Allgemeine Java-Themen 3
M Runtime.exec() - Performance / Frage zu Threads Allgemeine Java-Themen 5
S Rückgabewert runtime Allgemeine Java-Themen 11
martin82 Java Runtime Update >17 - SwingWorker Änderungen? Allgemeine Java-Themen 7
T Runtime.exec() Allgemeine Java-Themen 3
W java ohne runtime Allgemeine Java-Themen 2
N runtime.exec() Problem Allgemeine Java-Themen 6
lordcarlos Runtime exec und mplayer (linux) Allgemeine Java-Themen 11
K Runtime.exec mit Timeout Allgemeine Java-Themen 5
0 Runtime.exec() VLC starten klappt nicht Allgemeine Java-Themen 9
G Runtime.exec - Prozess "mittendrin" "einfach Allgemeine Java-Themen 4
G Runtime? Allgemeine Java-Themen 3
J Runtime.exec unter win vista? Allgemeine Java-Themen 10
F Problem mit Runtime.exec() Allgemeine Java-Themen 8
S Problem mit Runtime. Allgemeine Java-Themen 2
E Programm mit der Runtime ausführen Allgemeine Java-Themen 8
M Runtime & Exception Allgemeine Java-Themen 3
J ServiceInterface - Runtime() > jemand eine idee? Allgemeine Java-Themen 2
A Runtime oder ProcessBuilder exe starten Allgemeine Java-Themen 3
V Java-Programm vom USB-Stick ohne Runtime-Installation Allgemeine Java-Themen 18
W In Runtime Output schreiben Allgemeine Java-Themen 5
J Probiert mal bitte aus (Thread + Runtime) Allgemeine Java-Themen 10
A Installierte Runtime ermitteln Allgemeine Java-Themen 3
M Runtime.exec unter Vista (Administrator Rechte) Allgemeine Java-Themen 2
T ausführbares jar File mit integriertem Java Runtime 6+JOGL Allgemeine Java-Themen 7
the[V]oid Ausführen von "javac" über Runtime.exec() Allgemeine Java-Themen 4
W Runtime Error216 Runtime error 217 Allgemeine Java-Themen 6
B Runtime Verzeichniss wechseln Allgemeine Java-Themen 8
C Java SE Runtime 6 Update 1 - IE 7 und FF 2.0 - Allgemeine Java-Themen 6
D runtime.exec --> Prozess hängt sich auf Allgemeine Java-Themen 7
T Runtime.exec -> Prozesskontrolle abgeben ? Allgemeine Java-Themen 11
G Programm wird von java cmd runtime nicht aufgerufen? Allgemeine Java-Themen 13
S Runtime.exec() berechtigungen Allgemeine Java-Themen 5
S Runtime.exec und X Umgebung Allgemeine Java-Themen 2
A Runtime Process bricht nicht ab! Allgemeine Java-Themen 7
F Shell-Programme per Runtime.exec() starten und mehr? Allgemeine Java-Themen 4
K Runtime.exec und DFÜ-Verbindung Allgemeine Java-Themen 5
C Rechte unter WinXP, MySQL-Server per Runtime herunterfahren? Allgemeine Java-Themen 6
P Copy mit Runtime.exec() unter Unix Allgemeine Java-Themen 4
T Probleme mit Runtime.exec in Jar File Allgemeine Java-Themen 2
M Runtime.exec unter Linux Allgemeine Java-Themen 11
G Java Runtime Verzeichnis ermitteln Allgemeine Java-Themen 3
9 J2SE Runtime Environment 5.0 Allgemeine Java-Themen 6
S Runtime exec unter MacOS X will nicht "open pfad" Allgemeine Java-Themen 7
S dvbscan mit Runtime.getInstance().exec() ausführen ? Allgemeine Java-Themen 24
M Runtime.exec() => java.io.exception: too many open files Allgemeine Java-Themen 10
S Programm starten mit Runtime aktuelles Verzeichnis wechseln Allgemeine Java-Themen 7
K getRuntime().exec() untersagen Allgemeine Java-Themen 6
O getRuntime().Exec() - Environment - Variablen setzen? Allgemeine Java-Themen 2
L getRuntime.exec() Problem mit Hochkommata Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben