Ich versuche gerade von Java aus eine *.exe datei auszuführen. Wie in anderen Beiträgen beschrieben gehe ich dabei wie folgt vor:
Das ganze soll eine Datei entpacken. Machts aber nicht.
Gebe ich dasselbe in das cmd Konsole ein funktioniert es aber problemlos.
Die Dateien, sowie der Pfad in Java sind korrekt. Ändere ich diese im Code bekomme ich die entsprechenden Fehlermeldungen (File not found...)
Möchte ich mit writeProcessOutput(Process process) mir die Ausgabe vom Prozess ausgeben lassen, so
bleibt das Programm in Zeile:
String line = reader.readLine();
hängen.
Woran liegt bei mir das Problem?
Kann es daran liegen dass die Berechtigung fehlt die Datei auszuführen (benutze Vista. Aber da sollte doch dann eine entsprechende Fehlermeldung kommen).
Warum bleibt das Programm in Zeile:
String line = reader.readLine();
hängen? Sollte der Prozess nichts zurück liefern? (aber dann würde die Schleife ja abbrechen). Sollte der Prozess einfach einen endlosen String zurückliefern? Wenn ja warum?
Vielleicht habt ihr eine Idee?
Java:
public static void main(String[] args){
Runtime runtime = Runtime.getRuntime();
Process javap;
try {
commandArray = new String[] { "*.exe", "Argument", aFile };
javap = runtime.exec(commandArray);
writeProcessOutput(javap);
javap.destroy();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
static void writeProcessOutput(Process process) throws Exception {
InputStreamReader tempReader = new InputStreamReader(
new BufferedInputStream(process.getInputStream()));
BufferedReader reader = new BufferedReader(tempReader);
while (true) {
String line = reader.readLine();
if (line == null)
break;
System.out.println(line);
}
}
Das ganze soll eine Datei entpacken. Machts aber nicht.
Gebe ich dasselbe in das cmd Konsole ein funktioniert es aber problemlos.
Die Dateien, sowie der Pfad in Java sind korrekt. Ändere ich diese im Code bekomme ich die entsprechenden Fehlermeldungen (File not found...)
Möchte ich mit writeProcessOutput(Process process) mir die Ausgabe vom Prozess ausgeben lassen, so
bleibt das Programm in Zeile:
String line = reader.readLine();
hängen.
Woran liegt bei mir das Problem?
Kann es daran liegen dass die Berechtigung fehlt die Datei auszuführen (benutze Vista. Aber da sollte doch dann eine entsprechende Fehlermeldung kommen).
Warum bleibt das Programm in Zeile:
String line = reader.readLine();
hängen? Sollte der Prozess nichts zurück liefern? (aber dann würde die Schleife ja abbrechen). Sollte der Prozess einfach einen endlosen String zurückliefern? Wenn ja warum?
Vielleicht habt ihr eine Idee?