Hallo Zusammen,
Ich bin noch ein Neuling und habe vermutlich einen ziemlich doofen Fehler gemacht, allerdings haben mir ähnliche Themen und google.de nicht geholfen eine Lösung für mein Problem zu finden.
Folgende Klasse soll mit Hilfe eines übergebenen Strings einen Prozess starten.
Das funktioniert auch theoretisch über eine interne Main-Methode, allerdings soll der Prozess durch einen Button einer GUI gestartet werden. Dies funktioniert leider nicht.
Hier findet Ihr meinen Versuch, der den Prozess starten soll.
Wenn der Knopf gedrückt wird, startet zwar der Thread, aber in der Ausgabe erscheint "Command Failure", sprich der Prozess konnte nicht gestartet werden.
Vielleicht findet ja jemand meinen Fehler und kann mir auf die Sprünge helfen.
Ich hoffe ich habe nicht zu viele Fehler beim Stellen dieser Frage gemacht.
Ich bin noch ein Neuling und habe vermutlich einen ziemlich doofen Fehler gemacht, allerdings haben mir ähnliche Themen und google.de nicht geholfen eine Lösung für mein Problem zu finden.
Folgende Klasse soll mit Hilfe eines übergebenen Strings einen Prozess starten.
Das funktioniert auch theoretisch über eine interne Main-Methode, allerdings soll der Prozess durch einen Button einer GUI gestartet werden. Dies funktioniert leider nicht.
Java:
public class RunAllFoodSeq implements Runnable {
private String com;
public RunAllFoodSeq(String com) {
super();
this.com = com;
}
@Override
public void run() {
Process process;
try{
process = Runtime.getRuntime().exec(com);
try{
process.waitFor();
}catch (InterruptedException e) {
e.printStackTrace();
}
if(process.exitValue() == 0)
{
System.out.println("Command Successful");
}
else
{
System.out.println("Command Failure");
}
}catch(IOException e){
e.printStackTrace();
}
}
}
Hier findet Ihr meinen Versuch, der den Prozess starten soll.
Java:
runButton.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
try {
runAllAction(e);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
});
Java:
public void runAllAction(ActionEvent e) throws InterruptedException {
String com = "perl AllFoodSeq_v1.0.4.pl"
+ " "
+ "/home/bio-03/workspace/Perltest/threadtestPB"
+ " -g "+ "/media/bio-03/TOSHIBA/Master/AFS/2-Referenzgenomebowtie/"
+ " -G /media/bio-03/TOSHIBA/Master/AFS/2-Referenzgenomebowtie/Genomes.txt"
+ " -m /media/bio-03/TOSHIBA/Master/AFS/2-Referenzgenomebowtie/ConfigII.txt"
+ " -q /media/bio-03/TOSHIBA/Master/AFS/3-Trimmed-Data-MPIuII-fastx/MP-I/113003719_S15_L001_R1_001.fastq.trimmed_II.pe_for.fastq"
+ " /media/bio-03/TOSHIBA/Master/AFS/3-Trimmed-Data-MPIuII-fastx/MP-I/113003719_S15_L001_R1_001.fastq.trimmed_II.pe_rev.fastq"
+ " -o 3";
Runnable first = new RunAllFoodSeq(com);
Thread firstThread = new Thread(first);
firstThread.start();
}
Wenn der Knopf gedrückt wird, startet zwar der Thread, aber in der Ausgabe erscheint "Command Failure", sprich der Prozess konnte nicht gestartet werden.
Vielleicht findet ja jemand meinen Fehler und kann mir auf die Sprünge helfen.
Ich hoffe ich habe nicht zu viele Fehler beim Stellen dieser Frage gemacht.