1
我想在運行java程序中運行jmol的jar。這是我在命令行中運行它的方式,它運行良好。ProcessBuilder工作啓動jar但不acknolwledge jar的參數
$ java -jar Jmol.jar 1644_____.pdb -o -J "measure 3 4;measure 1 2"
我正在使用ProcessBuilder,它正確地調用了jar文件和第一個參數,但沒有其他參數。我錯過了什麼?
import java.io.IOException;
class test{
public static void main(String [] ar) throws Exception{
run();
}
public static void run() throws IOException, InterruptedException{
String INPUTPDB = "1644_____.pdb";
String args[] = {"java", "-jar", "Jmol.jar", INPUTPDB, "-o", "-J", "\"measure 3 4;measure1 2\""};
ProcessBuilder pb = new ProcessBuilder(args);
//Runtime.getRuntime().exec(args);
Process p = pb.start();
p.waitFor();
}
}
[不知道這個問題,也許訂購的參數,也許EXEC( new String [] {「....」})](http://stackoverflow.com/a/6164084/714968) – mKorbel 2013-03-02 20:15:21
你似乎沒有處理InputStream,OutputStream和錯誤InputStream。錯誤流尤其可能會向您顯示重要的錯誤消息。另外,如果您不處理這些流,則可能會填充操作系統緩衝區,導致流程無法正常工作。 – 2013-03-02 20:15:33
我會更新代碼來處理這個 – 2013-03-02 20:18:25