Helios co.
Lt. Commander
- Registriert
- März 2005
- Beiträge
- 1.863
Hallo @all,
ich habe ien Java Programm, bei dem ich in einer Methode mittels batch (Runtime.getRuntime().exec etc.) ein batch-fiel ausführe. Dieses stratet ein Programm. So weit klappt das alles auch richtig.
Nur nach dem Start des Programms soll eine andere Methode aufgerufen werden, die dieses Programm nutzt (d.h. es werden Parameter etc übergeben). Jetzt habe ich aber das Problem, dass die erste Methdode (also der Start des Programms) etwas dauert.
D.h. java wartet nicht bis das Programm fertig geladen wurde, bevor es die 2te Methode aufruft. Das führt natürlich zu einem Fehler.
Gibt es eine Möglichkeit Java dazu zu bewegen so lange zu warten, bis das Programm geladen wurde?
Im Netz habe ich auf anhieb keine gefunden, und wäre daher dankbar für jeden Rat!
Thx
----------------------------------------
Nachtrag:
Problem ist gelöst. Ich musste folgendes machen:
String cstring = new String("meineBtach");
Process p = Runtime.getRuntime().exec(cstring);
try{
p.waitFor();
}
catch (InterruptedException ie) {
ie.printStackTrace();
}
-------------------------------------
Nachtrag:
Es hat sich jetzt jedoch ein weiteres Problem ergeben. Ich nutze folgenden Code um eine .bat Datei zu starten. Führe ich das Ding von Hand aus, so klappt das einwandfrei. Von Java aus bekomme ich jedoch eine Fehlermeldung:
Die Fehlermeldung lautet:
Die .bat Datei sieht dabei wie folgt aus:
Ich bin langsam verzweifelt. Hat jemand ien Idee woran es liegen könnte?
ich habe ien Java Programm, bei dem ich in einer Methode mittels batch (Runtime.getRuntime().exec etc.) ein batch-fiel ausführe. Dieses stratet ein Programm. So weit klappt das alles auch richtig.
Nur nach dem Start des Programms soll eine andere Methode aufgerufen werden, die dieses Programm nutzt (d.h. es werden Parameter etc übergeben). Jetzt habe ich aber das Problem, dass die erste Methdode (also der Start des Programms) etwas dauert.
D.h. java wartet nicht bis das Programm fertig geladen wurde, bevor es die 2te Methode aufruft. Das führt natürlich zu einem Fehler.
Gibt es eine Möglichkeit Java dazu zu bewegen so lange zu warten, bis das Programm geladen wurde?
Im Netz habe ich auf anhieb keine gefunden, und wäre daher dankbar für jeden Rat!
Thx
----------------------------------------
Nachtrag:
Problem ist gelöst. Ich musste folgendes machen:
String cstring = new String("meineBtach");
Process p = Runtime.getRuntime().exec(cstring);
try{
p.waitFor();
}
catch (InterruptedException ie) {
ie.printStackTrace();
}
-------------------------------------
Nachtrag:
Es hat sich jetzt jedoch ein weiteres Problem ergeben. Ich nutze folgenden Code um eine .bat Datei zu starten. Führe ich das Ding von Hand aus, so klappt das einwandfrei. Von Java aus bekomme ich jedoch eine Fehlermeldung:
Code:
try {
String[] para = {"cmd ", "/c ", "start ", "C:\\myjags.bat"};
ProcessBuilder processBuilder = new ProcessBuilder(para);
final Process process = processBuilder.start();
Scanner s = new Scanner(process.getErrorStream());
while(s.hasNext()){
System.out.print(s.next()+" ");
}
process.waitFor();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Die Fehlermeldung lautet:
Die Syntax f?r den Dateinamen, Verzeichnisnamen oder die Datentr„gerbezeichnung ist falsch.
Die .bat Datei sieht dabei wie folgt aus:
F:
cd JAGS
cd bin
jags C:\JAGS\myscript.txt
Ich bin langsam verzweifelt. Hat jemand ien Idee woran es liegen könnte?
Zuletzt bearbeitet: