Thanks, I actually experimented a bit with destroy(), and it was the main problem, but thanks again :)
• 0 views
•
link
Hello. I'm developing a Java application, which at some point calls a MSA algorithm. Currently, I'm using muscle. I'm trying to call this process from within java app, there are no errors, yet there is no output! Is there a syntax problem I am not aware of?
try {
System.out.println("Opening muscle analysis..");
Runtime runTime = Runtime.getRuntime();
Process process = runTime.exec(new String[]{
"muscle",
"-in","test1.fasta",
"-out","out12.afa"}
);
System.out.println("Closing..");
process.destroy();
} catch (IOException e) {
e.printStackTrace();
}
Thank you very much
check muscle is in the PATH, you may need to consumme the stdout and the stderr and wait for the end of the process ( don't use destroy but waitFor). A shorter way to do this is:
Runtime.getRuntime().exec("/path/to/muscle -in "+"test1.fasta"+" -out "+"out12.fa");
Thanks, I actually experimented a bit with destroy(), and it was the main problem, but thanks again :)
Log in to answer this question.
Following code works defintely:
How to call it: execute(new String[]{"muscle","-in", "input.fa" , "-out" , "output.fa"});