exec()-Methode

Status
Nicht offen für weitere Antworten.

Antineutrino

Mitglied
Hallo,
ich habe eine Klasse, die ein Kommando mithilfe von Runtime.getRuntime().exec() ausführt. Das funktioniert auch, aber leider scheint das nicht zu terminieren. (siehe http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=3)

Code:
public class CmdExec implements Runnable {

	private String cmdline;
	private CmdConsole commandConsole;


	public CmdExec(String cmdline, CmdConsole commandConsole) {
		this.cmdline = cmdline;
		this.commandConsole = commandConsole;
	}


	public void run() {

		commandConsole.setVisible(true);

		try {
			String line;
			Process p = Runtime.getRuntime().exec(cmdline);
			BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
			

			StreamGobbler outputGobbler = new StreamGobbler(p.getInputStream());
			StreamGobbler errorGobbler = new StreamGobbler(p.getErrorStream());
			outputGobbler.start();
			errorGobbler.start();
			int i = p.waitFor();
			System.out.println("FERTIG");
			
			input.close();
			Toolkit.getDefaultToolkit().beep();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}



	class StreamGobbler extends Thread {
		InputStream is;


		StreamGobbler(InputStream is) {
			this.is = is;
		}


		public void run() {
			try {
				InputStreamReader isr = new InputStreamReader(is);
				BufferedReader br = new BufferedReader(isr);
				String line = null;
				while ((line = br.readLine()) != null) {
					commandConsole.appendText(line + "\n");
				}

			} catch (IOException ioe) {
				ioe.printStackTrace();
			}
		}
	}

}
Das System.out.println("Fertig") kommt leider nie. Also bekomme ich für das restliche Programm nicht raus, wann er denn mal fertig ist.
 

The_S

Top Contributor
tjoa, dann wird das aufgerufene Programm wohl nie fertig ... oder mit deinem Aufruf stimmt was nicht.
 
G

Gast

Gast
Kommt denn die Ausgabe "Fertig" noch? Ansonsten haste wohl nen Deadlock!
 
G

Guest

Gast
:cool: Ups, na ja der Fehler ist auf jeden Fall das die beiden Threads gleichzeitig versuchen auf
das File zu zugreifen, was aber nit klappt also warte der Eine auf den Anderen und sie werden nit fertig.
Mach einfach mal generell wenn files liest oder schreibst nen
Code:
synchronize
drum herum.
Dann läufts.

Ganst ja mal nach dem Problem der speisenden Philosophen in Verbindung mit Java googeln, denn weiste was gemeint ist.
 

Antineutrino

Mitglied
Ich habe das Problem gefunden:
Eine der beiden bat-Dateien läuft unendlich lange (kein Fehler, sondern Absicht).

Vielleicht schaue ich mir mal den Output an und versuche dann daraus zu erkennen, wann das Programm gestartet ist.
 
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
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
Thallius Runtime.getRuntime().exec " escapen? Allgemeine Java-Themen 9
M exec() funktioniert nicht Allgemeine Java-Themen 1
N Runtime.getRuntime().exec Problem mit find Allgemeine Java-Themen 3
T Bluescreen bei Runtime.exec(); Allgemeine Java-Themen 8
I Runtime.getRuntime().exec Problem Allgemeine Java-Themen 4
R Exec. Jar läd Bilder nicht! Allgemeine Java-Themen 5
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 exec( "cmd /c") aber Konsole soll offen bleiben Allgemeine Java-Themen 9
I Encoding Problem bei exec und Windows Allgemeine Java-Themen 2
truesoul Runtime.getRuntime().exec nebenbei ausführen Allgemeine Java-Themen 12
Z Runtime.getRuntime().exec-Problem Allgemeine Java-Themen 4
F Kleines Problem mit exec Allgemeine Java-Themen 14
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
M Runtime.getRuntime().exec(cmd); auf windows ... Allgemeine Java-Themen 2
K getRuntime().exec() untersagen Allgemeine Java-Themen 6
T Runtime.exec() Allgemeine Java-Themen 3
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
N runtime.exec() Problem Allgemeine Java-Themen 6
A exec-Problem Allgemeine Java-Themen 11
W Runtime.getRuntime().exec() Allgemeine Java-Themen 10
lordcarlos Runtime exec und mplayer (linux) Allgemeine Java-Themen 11
C JApplet und Runtime.getRuntime().exec() Allgemeine Java-Themen 2
K Runtime.exec mit Timeout Allgemeine Java-Themen 5
K System.exec() Programm mit mehreren Parametern Allgemeine Java-Themen 8
0 Runtime.exec() VLC starten klappt nicht Allgemeine Java-Themen 9
G Runtime.exec - Prozess "mittendrin" "einfach Allgemeine Java-Themen 4
J Runtime.exec unter win vista? Allgemeine Java-Themen 10
O getRuntime().Exec() - Environment - Variablen setzen? Allgemeine Java-Themen 2
J Unicode: cmd parameter (main args); exec params; filenames Allgemeine Java-Themen 2
L getRuntime.exec() Problem mit Hochkommata Allgemeine Java-Themen 3
M Probleme Runtime.getRuntime().exec(Start.cmd); Allgemeine Java-Themen 10
F Problem mit Runtime.exec() Allgemeine Java-Themen 8
M Runtime.exec unter Vista (Administrator Rechte) Allgemeine Java-Themen 2
K Probleme mit Runtime.getRuntime().exec Allgemeine Java-Themen 6
A Runtime.getRuntime().exec mit Warte auf Beendigung - Wie? Allgemeine Java-Themen 7
N CMD, EXEC, Befehle senden Allgemeine Java-Themen 3
R Problem mit Runtime.getRuntime().exec() Allgemeine Java-Themen 4
the[V]oid Ausführen von "javac" über Runtime.exec() Allgemeine Java-Themen 4
L mit exec() befehl ausführen ( OS X / Linux) Allgemeine Java-Themen 8
H Exec Problem Allgemeine Java-Themen 3
F Runtime.getRuntime().exec mit Linux und Leerzeichen Allgemeine Java-Themen 3
D runtime.exec --> Prozess hängt sich auf Allgemeine Java-Themen 7
T Runtime.exec -> Prozesskontrolle abgeben ? Allgemeine Java-Themen 11
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
S Runtime.exec() berechtigungen Allgemeine Java-Themen 5
S Runtime.exec und X Umgebung Allgemeine Java-Themen 2
N mit exec windows runterfahren (mit -c "und grund text&q Allgemeine Java-Themen 3
M Exec Allgemeine Java-Themen 4
F Shell-Programme per Runtime.exec() starten und mehr? Allgemeine Java-Themen 4
M Problem mit getRuntime().exec() Allgemeine Java-Themen 9
M Access lässt sich nicht über "exec(command)" start Allgemeine Java-Themen 3
K Runtime.exec und DFÜ-Verbindung Allgemeine Java-Themen 5
P Copy mit Runtime.exec() unter Unix Allgemeine Java-Themen 4
D Problem mit Runtime.getRuntime().exec() Allgemeine Java-Themen 14
L Runtime.getRuntime.exec() Allgemeine Java-Themen 7
S Fehler von .getRuntime().exec(""); Allgemeine Java-Themen 5
T Probleme mit Runtime.exec in Jar File Allgemeine Java-Themen 2
M Runtime.exec unter Linux Allgemeine Java-Themen 11
N Perl Skript ausführen über exec Allgemeine Java-Themen 2
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
S Runtime exec unter MacOS X will nicht "open pfad" Allgemeine Java-Themen 7
G JDK Version - exec Befehl Allgemeine Java-Themen 3
S dvbscan mit Runtime.getInstance().exec() ausführen ? Allgemeine Java-Themen 24
B Problem mit Runtime.getRuntime().exec() Allgemeine Java-Themen 4
G Runtime.getRuntime().exec("cmd /c START") Allgemeine Java-Themen 3
M Runtime.exec() => java.io.exception: too many open files Allgemeine Java-Themen 10
A Pfad mit Leerzeichen über exec starten Allgemeine Java-Themen 6
H gerRuntime().exec stürtz ab? Allgemeine Java-Themen 4
W Hilfe bei Methode Allgemeine Java-Themen 14
Ü Methoden Arrays vergleichen - Methode Allgemeine Java-Themen 1
Simon16 compareTo Methode überschreiben Allgemeine Java-Themen 4
TheSkyRider Methode über DataInputStream "auslösen" Allgemeine Java-Themen 6
M CrudRepository save Methode mocken Allgemeine Java-Themen 6
thor_norsk toString() - Methode Allgemeine Java-Themen 6
A Clean Code: Variable vs. Methode Allgemeine Java-Themen 8
Encera Zweite Main-Methode zuschalten Allgemeine Java-Themen 18
M Optimierung einer Methode (byte-Geraffel) Allgemeine Java-Themen 2
I Hibernate Envers - Aufruf der Methode zum Speichern selbst ausführen oder managen? Allgemeine Java-Themen 0
N rekursion mehrfach eine Methode Öffnen Allgemeine Java-Themen 4
berserkerdq2 Wenn ich eine Methode nur jede 50ms ausführen will, wie mach ich das? Allgemeine Java-Themen 4
berserkerdq2 run-methode eines Threads so programmieren, dass 30x die Sekunde etwas ausgeführt wird. Allgemeine Java-Themen 44
N Schnellste Methode, ein Array durchzugehen? Allgemeine Java-Themen 9
E Methoden abstract static Methode Allgemeine Java-Themen 8
E Eine Methode einer extendeten Klasse deakitivieren Allgemeine Java-Themen 12
F Getter Methode aufrufen funktioniert nicht Allgemeine Java-Themen 1
B In Java Methode mit generic input und output basteln? Allgemeine Java-Themen 4
goldmensch Datentypen Welche Methode hat die bessere Performance? Allgemeine Java-Themen 12
R Lambda Expression in einer Methode execute() aufrufen (execute() ist eine Methode aus dem funktionalen Interface Command) Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben