1
我刚刚为Java Process Builder进行了简单的测试代码。 有4个例子,除了最后一个以外,一切都很顺利。 这里是我的代码Java简单进程生成器问题
public class bashProcessor {
public static void main(String args[]) {
try {
ProcessBuilder pb;
pb = new ProcessBuilder("/bin/bash", "-c", "touch Jin_1.sh");
pb.start();
pb = new ProcessBuilder("/bin/bash", "-c", "mkdir Jin_2");
pb.start();
pb = new ProcessBuilder("/bin/bash", "-c", "bash /home/Jin/test.sh");
pb.start();
//below is not working
pb = new ProcessBuilder("/bin/bash", "-c",
"bash /home/solr-tomcat/bin/shutdown.sh warm4 solr-instances");
pb.start();
System.out.println("pb job is done now");
Thread.sleep(3000);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
当我键入最后一个例子(bash中的/ home/Solr的...)通过手工打字。它工作没有任何错误。我需要你的帮助。如果你有任何想法 请让我知道这将是很大的帮助。
你试过' “/斌/庆典”, “-c”, “庆典”,“/家/solr-tomcat/bin/shutdown.sh“,”warm4“,”solr-instances“'? – MadProgrammer
谢谢你的建议。我刚刚试过这个,就像你说的“pb = new ProcessBuilder(”/ bin/bash“,”-c“,”bash“,”/home/solr-tomcat/bin/shutdown.sh“,”warm4“,”solr -instances “);”但它不工作 –
你是否有任何理由从bash内部调用bash?也许只是将它简化为'(“/home/solr-tomcat/bin/shutdown.sh warm4 solr-instances”);'或者在脚本中包含完整的bash路径'(“/ bin/bash”,“ - ” c“, ”/ bin/bash /home/solr-tomcat/bin/shutdown.sh warm4 solr-instances“) –