我试图使用Runtime.getrunTime().exec从另一个
java程序运行
java程序
代码:
String java_home = System.getenv("JAVA_HOME");
String[] command = {""+java_home+"/bin/java -cp -cp /sc/sug/p-lib/* Tdesigner -cd /pr -in ing.rsp -out /scratch/sug/ng.pla -ad -stopO "};
try {
proc = Runtime.getRuntime().exec(command);
proc.waitFor();
int exitCode = proc.exitValue();
} catch (IOException e) {
e.printstacktrace();
} catch (InterruptedException e) {
e.printstacktrace();
}
它给了我以下错误:
java.io.IOException: Cannot run program "/net/sl/sc/jdk6/bin/java -cp /sc/sug/p-lib/* Tdesigner -cd /pr -in ing.rsp -out /scratch/sug/ng.pla -ad -stopOnError ": java.io.IOException: error=2,No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
at java.lang.Runtime.exec(Runtime.java:593)
at java.lang.Runtime.exec(Runtime.java:466)
任何人都可以帮我解决这个问题.是我需要使用-cp添加单个jar文件而不是设置目录.
解决方法
尝试从命令字符串数组中删除额外的-cp并使用数组中的单个标记:
String[] command = { java_home + "/bin/java","-cp","/sc/sug/p-lib/*","Tdesigner","-cd","/pr","-in","ing.rsp","-out","/scratch/sug/ng.pla","-ad","-stopO" };