Runtime.exec -> Thread.sleep -> Konflikt

Status
Nicht offen für weitere Antworten.

Scrawer

Mitglied
hallo, hätte da ein kleines problem als anfänger.....

ich führe per execute ein programm aus welches eine datei erstellt... diese möchte ich nun laden... daher brauche ich eine schleife welche prüft ob sie schon existiert.
ich dachte mir nun der einfachste weg wäre eine while schleife in verbindung eines sleeps.... was ja auch grundsätzlich funktioniert... das problem ist nun das das execute nicht mehr ausgeführt wird... schaut so aus als würde das Thread.sleep das Runtime.getRuntime().exec behindern?
kann mir das nicht ganz erklären.... ist es denn so das das execute eine gewisse zeit benötigt um denn befehl auch aus zu führen und mein sleep dies nun unterbricht..... oder wie muss ich mir das erklären?
Code:
try
{
	// hat zur folge das ein file erstellt wird
	Runtime.getRuntime().exec( .... );
}
catch (IOException e)
{}

try
{
	File f = new File( .... );

	// warten bis das file existiert
	while( !f.exists() )
	{
		Thread.sleep( 200 );
	}
	
	System.out.println( "file wurde erstellt...." );
}
catch( InterruptedException e )
{}

danke!
 
R

Roar

Gast
nimm den Process den dir exec zurückliefert und ruf waitFor() auf. dann wartet dein programm solange bis dein prozess zuende ist. dann existiert auch deine datei.
 

Scrawer

Mitglied
danke für die anwort... löst leider noch nicht ganz mein problem :?

das programm welches ich per exec anspreche (Flash MX2004) läuft zu dem zeitpunkt schon... und soll auch danach noch laufen...
bei dem waitFor habe ich nun das problem... das Flash zwar angesprochen wird... jedoch die aktionen nicht mehr richtig ausgeführt werden..... nehme ich das waitFor raus kommen vom flash keine fehler....

wobei meine frage von oben noch immer existent wäre... hebt das sleep mein execute auf bzw. beeinflusst es negativ?
bin aber auch für jeden anderen ansatz dankbar der mich zum ziel führt :wink:

denn am ende möchte ich ja gar nicht viel... eine execute ab setzten.. dann eine schleife starten die prüft ob eine gewisse datei existiert... und noch ein timeout für die schleife.. fertig....
 
R

Roar

Gast
UFF achso ich dachte dein programm erzeugt nur die datei... dann musst du halt nen extra thread machen der prüft ob die datei existiert
 

Campino

Top Contributor
Lass das sleep doch einfach weg, dann wird zwar etwas (zu) oft geguckt, ob die datei existiert, aber was soll's...
 
R

Roar

Gast
Campino hat gesagt.:
Lass das sleep doch einfach weg, dann wird zwar etwas (zu) oft geguckt, ob die datei existiert, aber was soll's...
klasse idee... nach spätestens 100ms schmiert dir dann deine cpu ab ;)
 

Scrawer

Mitglied
ohne sleep hatte ich es am anfang... kommt gar nicht gut ;)

das mit Thread hört sich sehr gut an..... habe nun auch schon einiges versucht.. aber mit mäßigen erfolg, bitte seit nachsichtig mit mir :)

bin es zweierlei angegangen...
1) zuerst für das execute einen eigenen Thread
2) dann für while -> sleep einen eigenen Thread

Code:
// 1)

File f = new File( "c:\\jTest\\output.txt" );

Thread t = new ExecThread();
t.start();
		
try
{
	while( !f.exists() )
	{			
		Thread.sleep( 1000 );
	}
}
catch( InterruptedException e )
{}	

//--------

class ExecThread extends Thread
{
	public void run()
	{
		try
		{			
			Runtime.getRuntime().exec( "Flash c:\\jTest\\compile.jsfl" );
		}
		catch (IOException e)
		{}
	}
}

Code:
// 2)

try
{			
	Runtime.getRuntime().exec( "Flash c:\\jTest\\compile.jsfl" );
}
catch (IOException e)
{}

Thread t = new WaitThread();
t.start();

//--------	
		
class WaitThread extends Thread
{
	public void run()
	{
		try
		{
			File f = new File( "c:\\jTest\\output.txt" );
						
			while( !f.exists() )
			{			
				sleep( 1000 );
			}
		}
		catch( InterruptedException e )
		{}	
	}
}

letzt endlich kommt aber bei beiden das selbe raus... Flash wird angesprochen aber nicht richtig ausgeführt....
kommentiere ich das sleep aus.. läuft wieder alles perfekt (bei beiden versionen)....

kommt mir fast so vor als wäre mein Thread kein eigenständiger parallel laufender prozess, habe ich da was fasch gemacht?
 

Scrawer

Mitglied
danke jungs ich habe den fehler gefunden.....

es lag daran das ich dieses compile.jsfl file (welches dann flash anspricht bzw. steuert) kurz oberhalb erstelle und dort kein close nach dem flush gemacht habe....
das komische ist jedoch das dies erst zu einem konflikt geführt hat wenn ein sleep nach dem execute kommt...
ohne dem sleep gab es keine probleme ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
DoubleM Runtime.getRuntime().exec Frage Java Basics - Anfänger-Themen 2
N Best Practice Doppelte und einfach Anführungsstriche in Runtime.getruntime().exec() Java Basics - Anfänger-Themen 6
O Methoden Runtime.getRuntime().exec(befehl); Java Basics - Anfänger-Themen 6
D Input/Output Runtime().exec fehler abfangen Java Basics - Anfänger-Themen 4
D RunTime Exec Java Basics - Anfänger-Themen 7
D Runtime exec output wiedergeben Java Basics - Anfänger-Themen 1
G Wie bekomme ich alle Ausgaben von runTime.exec() Java Basics - Anfänger-Themen 7
P Vererbung Runtime.getRuntime().exec("blub"); Java Basics - Anfänger-Themen 11
J Window 7 Problem mit Runtime.getRuntime().exec("explorer") Java Basics - Anfänger-Themen 4
D Runtime.getRuntime().exec(command); Java Basics - Anfänger-Themen 5
P Probleme mit Runtime.exec und Leerzeichen Java Basics - Anfänger-Themen 15
S Mit Runtime.exec() ImageMagick aufrufen -> Problem Java Basics - Anfänger-Themen 5
X Runtime.getRuntime().exec() Problem(inkonsistenter sch****) Java Basics - Anfänger-Themen 2
D Runtime.exec cygwin1.dll Java Basics - Anfänger-Themen 4
G Runtime.getRuntime().exec(command) für Mac OS! Java Basics - Anfänger-Themen 7
G Runtime.getRuntime().exec und Exception? Java Basics - Anfänger-Themen 3
I Runtime.exec mit Adminrechten Java Basics - Anfänger-Themen 2
Z kleine frage zu: Runtime.getRuntime().exec("cmd /c) Java Basics - Anfänger-Themen 3
O Aktuelles Verzeichnis Runtime.getRuntime().exec Java Basics - Anfänger-Themen 6
M Runtime exec mit Ordner angabe Java Basics - Anfänger-Themen 7
T Process pro =Runtime.getRuntime.exec("wine /Datei Pfad/ Java Basics - Anfänger-Themen 8
T Runtime.getRuntime().exec mit parameterübergabe Java Basics - Anfänger-Themen 16
padde479 Runtime.getRuntime.exec() Leerzeichen unterdrücken Java Basics - Anfänger-Themen 2
G Runtime.exec() Problem Java Basics - Anfänger-Themen 4
Z linux-befehl Runtime exec Java Basics - Anfänger-Themen 2
M Runtime.exec() Java Basics - Anfänger-Themen 5
B mit Runtime.getRuntime().exec auch HTML-Dateien öffnen? Java Basics - Anfänger-Themen 7
G Parameterübergabe bei Runtime.getRuntime().exec Java Basics - Anfänger-Themen 16
N Runtime.exec und Key event Java Basics - Anfänger-Themen 2
F Probleme mit Runtime.getRunTime().exec() Java Basics - Anfänger-Themen 7
G Probelm mit Runtime exec! Erstellen einer neuen Konsole. Java Basics - Anfänger-Themen 2
M Runtime.getRuntime().exec() Problem Java Basics - Anfänger-Themen 3
C Kann java.exe nicht aus Runtime.getRuntime().exec() starten Java Basics - Anfänger-Themen 4
J Programm beenden ohne System.exit() oder Runtime.exit() Java Basics - Anfänger-Themen 5
J Mit OpenJDK entwickeln aber Oracle SE Runtime installieren? Java Basics - Anfänger-Themen 6
I equals (Override) mit eigener Exception (keine Runtime-Exception) Java Basics - Anfänger-Themen 9
J Programm was üer Runtime.getRuntime gestartet wird erkennt String Parameter nicht Java Basics - Anfänger-Themen 0
R Einfaches refresh während runtime Java Basics - Anfänger-Themen 4
I Runtime.getRuntime mit delay? Java Basics - Anfänger-Themen 2
L0MiN Input/Output Wie kann ich Kompilierfehler richtig ausgeben lassen (Runtime)? Java Basics - Anfänger-Themen 1
T java ohne runtime ? Java Basics - Anfänger-Themen 6
B Error vs Runtime exception Java Basics - Anfänger-Themen 4
K The Java Runtime Environment cannot be found. Java Basics - Anfänger-Themen 6
G Fehlermeldung: A fatal error has been detected by the Java Runtime Environment Java Basics - Anfänger-Themen 7
pg1337 Methoden Runtime Exception Java Basics - Anfänger-Themen 13
F Runtime - Ausführung abwarten Java Basics - Anfänger-Themen 6
N Java 6 / J2SE Runtime deinstallieren Java Basics - Anfänger-Themen 11
A JAR2EXE -> Java Runtime Environment not found Java Basics - Anfänger-Themen 4
B Externe .exe-Dateien starten +Runtime Java Basics - Anfänger-Themen 6
G Mittels Runtime prüfen ob ein Programm läuft? Java Basics - Anfänger-Themen 18
T Seltsame Runtime-Fehlermeldung Java Basics - Anfänger-Themen 4
B Unklarheit bei Applets und Runtime Java Basics - Anfänger-Themen 5
P custom EventDispatcher fehlermeldung in der runtime bei invo Java Basics - Anfänger-Themen 27
D Runtime Prozeß hängt sich auf. in der Kommandozeile gehts Java Basics - Anfänger-Themen 5
O Java Runtime Java Basics - Anfänger-Themen 2
G runtime in java Java Basics - Anfänger-Themen 31
G Batch aufrufen klappt nicht mit Runtime Java Basics - Anfänger-Themen 5
T Mit Runtime unter Windows einen Ordner öffnen Java Basics - Anfänger-Themen 2
P runtime geht nicht? Java Basics - Anfänger-Themen 16
P Gibt es Probleme mit Runtime Objekten in Servlets? Java Basics - Anfänger-Themen 3
P Runtime problem Java Basics - Anfänger-Themen 5
D 2 Verständnisfragen zu Threads und Runtime Java Basics - Anfänger-Themen 5
C Syntax Probleme mit Runtime javascript Java Basics - Anfänger-Themen 9
Dimax Java Programm mit exec starten Java Basics - Anfänger-Themen 5
M Noch immer Probleme mit exec Java Basics - Anfänger-Themen 15
K exec.StdIn.Write Java Basics - Anfänger-Themen 7
B getRuntime().exec() Java Basics - Anfänger-Themen 4
C javac, exec, -sourcepath, Umgebungsvariablen Java Basics - Anfänger-Themen 9
C exec Aufruf mit Leerzeilen im Pfad Java Basics - Anfänger-Themen 3
C exec Umgebungsvariablen Java Basics - Anfänger-Themen 2
S .exe mit getRuntime.exec sichtbar ausführen Java Basics - Anfänger-Themen 3
K Eingabe für exec überprüfen Java Basics - Anfänger-Themen 2
R exec: plattformunabhängig Java Basics - Anfänger-Themen 7
L Bitte um Hilfe: getRuntime().exec() Java Basics - Anfänger-Themen 12
S mit getRuntime.exec gestarteten Prozess überwachen Java Basics - Anfänger-Themen 2
F Leerzeichen in Pfadangabe beim Befehl exec() Java Basics - Anfänger-Themen 5
T Benötige ich einen thread bei zugriff getRunetime.exec ? Java Basics - Anfänger-Themen 4
G getRuntime().exec unix problem Java Basics - Anfänger-Themen 17
K Datein ausführen (exec) Java Basics - Anfänger-Themen 3
Leyla Thread isInterrupt Java Basics - Anfänger-Themen 18
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
A Thread XML-Dateien zusammenfügen Java Basics - Anfänger-Themen 11
F influxdb Upload in eigenem Thread Java Basics - Anfänger-Themen 2
frager2345 Thread - Methoden synchronized deklarieren Java Basics - Anfänger-Themen 10
berserkerdq2 Größter unterschied von extends thread und implements runnable? Java Basics - Anfänger-Themen 2
T Thread beenden aus zweiter Klasse Java Basics - Anfänger-Themen 4
A Thread - Synchronized Java Basics - Anfänger-Themen 10
A Thread Producer - Consumer Java Basics - Anfänger-Themen 1
A Thread-Semhapore Java Basics - Anfänger-Themen 0
A Thread Exchanger Java Basics - Anfänger-Themen 22
A Thread-Cyclicbarrier Java Basics - Anfänger-Themen 4
B In einem Thread Endlosschleife beenden Java Basics - Anfänger-Themen 19
A Thread-Verklemmung Java Basics - Anfänger-Themen 10
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
A Thread find number Java Basics - Anfänger-Themen 8
F Thread.sleep() Java Basics - Anfänger-Themen 5
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
A Thread Java Basics - Anfänger-Themen 3
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
A Thread Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben