Externes Programm startet nicht

draig

Mitglied
Hi.

Ich habe ein Problem, und zwar startet mein externes Programm nicht. Egal welches ich versuche aufzurufen. Aber sobald ich versuche ein Programm aufzurufen, dass nicht existiert, erscheint die Fehlermeldung, dass es nicht existiert.

Hier die Quellcodes die ich versucht habe.

1.
Code:
  new ProcessBuilder("/media/hda1/Storage/PSP/PSX/eXtreme Games/lin_convert_iso").start();

2.
Code:
String sysCmd = "/media/hda1/Storage/PSP/PSX/eXtreme Games/lin_convert_iso";
Runtime rt = Runtime.getRuntime();
try {
  // Systemaufruf starten
  Process p = rt.exec(sysCmd);
  // Warten, bis sysCmd terminiert
  p.waitFor();

  // ev. Ausgabe u.ae. einlesen
  // z.B. java.io.InputStream i = p.getInputStream();
  // ...
} catch(java.io.IOException ioe) {
  // I/O Exception behandeln
} catch(InterruptedException ie) {
  // InterruptedException behandeln
}

PS: Ist ein Linux System und ich habe die Berechtigung die Datei aufzurufen. Chmod ist alles richtig eingestellt.
 
Hallo,

wenn du ein externes Programm über den ProcessBuilder startest, so bekommt der davon erzeugte Prozess per default das Working Directory der Java Anwendung gesetzt welche den Prozess gestartet hat. Deshalb muss man bei einigen externen Skripten / Programmen das Working Directory explizit entsprechend setzen:

Schau mal hier:
http://www.tutorials.de/forum/java/262592-batch-file-ausfuehren.html

Ansonsten könnte es noch sein, dass du die Ein- und Ausgabeströme des erzeugten Prozesses manuell schließen musst (wenn du sie nicht brauchst), da diese den Prozess blockieren können.

Gruß Tom
 
Hab nun soweit herausgefunden das es nicht am pfad liegt. Kann den gnome terminal aufrufen, aber kkeine paramter übergben. Ich suche mal weiter. Wenn ich noch was dazu finde, werde ich es hier als Information eintragen.
 
Zurück