ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
709
709
EMPFEHLEN
-
30.01.10 17:15 #1
- Registriert seit
- Jan 2010
- Beiträge
- 8
Hallo zusammen hab mal wieder eine frage und denke das die wirklich oft gestellt wird in verbindung mit dem Processbuilder.
wie kann ich einem Processbuilder einen Timeout geben.
Habe scripte die ausgeführt werden über einen Process, nun soll allerdings nur 50 sekunden auf diesen proCess gewartet werden.hat er länger als 50 sekunden keine rückmeldung gegeben so soll er den aktiven abbrechen.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
public synchronized int executeFile(File f) { ......................... p=new ProcessBuilder(f.getAbsolutePath()); System.out.println(f.getName()); Process pro=null; InputStream es=null; InputStreamReader ir=null; try { StringBuilder builder = new StringBuilder(); pro = p.start(); try { pro.waitFor(); pro.destroy(); //hier ein Timeout 50 sekunden } catch (InterruptedException e){e.printStackTrace(); return 0;} if(pro.exitValue()==1) { ....... } else { ........ } es = pro.getErrorStream(); System.out.println("ES="+es); ir = new InputStreamReader(es); char[] buf = new char[1024]; int i=0; while((i=ir.read(buf))!=-1) { builder.append(buf,0,i); } } catch (IOException e) { .......................... } finally { if(pro!=null)pro.destroy(); try { if(pro!=null)pro.waitFor(); } catch (InterruptedException e1) {e1.printStackTrace();} if(f!=null || f.exists())f.deleteOnExit(); try { if(ir!=null)ir.close(); if(es!=null)es.close(); } catch (IOException e) {e.printStackTrace();} } ........................... }
-
hey
ich persönlich mag es nicht so wen man jemanden Helfen möchte Googelt und dann als ersten Google treffer deinen Post fast genau gleich in einem anderen Forum findet.
http://www.java-forum.org/java-basic...t-setzten.html
: /
deswegen werd ich dir auch nicht helfen
sry
Gruß the Cow
-
03.02.10 10:55 #3
Moin,
@cow: halte Dich doch bitte an die hier gültige Netiquette (http://www.tutorials.de/index.php?pg=netiquette), speziell Punkt 15
Danke
@Stiffler66: spezifiziere doch bitte Deine Frage ... was genau funktioniert an Deinem Code resp. wo hast Du welches Problem
Danke und Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
05.02.10 11:23 #4
- Registriert seit
- Jan 2010
- Beiträge
- 8
@cow
Verstehe leider nicht was daran falsch sein sollte auch in ein anderes Forum die selbe frage zu stellen, wenn ich in einem Forum keine Antwort bekomme dann versuche ich es auch wo anders.Wenn du mir behilflich wärst wäre es auch nicht nötig gewäsen wo anders nachzufragen
@vfl
Danke erstmal
Eigentlich funktioniert alles, allerdings wollte ich den Fehler abfangen, dass ein Process länger als 20 sekunden braucht.
Dieser soll dann abgebrochen werden und 0 zurück geben.
leider hab ich bisher kein Process der länger als 20 sekunden dauert
, aber will auch diesen Fehler abgefangen haben, für den Fall das er auftritt
Gruß
-
05.02.10 11:43 #5Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
05.02.10 11:58 #6
- Registriert seit
- Jan 2010
- Beiträge
- 8
Ja, aber wie frage ich nach ob er länger als 2 sekunden gebraucht hat?
Eine idee wäre es nach process.start() den aktuellen Thread 2 sekunden schlafen zulegen und danach den process zu beenden.aber wie sinnvoll das ist weiss ich nicht.
Meine frage wäre eigentlich ob es da nicht eine funktion gibt mit der man einen Timeout setzen kann.
Ähnliche Themen
-
ProcessBuilder
Von IroNHeinZ im Forum Java GrundlagenAntworten: 7Letzter Beitrag: 20.12.09, 14:59 -
ProcessBuilder - Vista ?
Von Ashaman im Forum JavaAntworten: 9Letzter Beitrag: 18.05.08, 19:32 -
Probleme beim ProcessBuilder
Von Dukeatcoding im Forum JavaAntworten: 2Letzter Beitrag: 24.08.07, 13:08 -
ProcessBuilder, src - bin?
Von flashray im Forum JavaAntworten: 4Letzter Beitrag: 04.06.07, 21:12 -
Probleme mit Processbuilder
Von Daelrik im Forum JavaAntworten: 4Letzter Beitrag: 30.09.06, 15:54





Zitieren


Login




