我想调用一个独立于原始进程的进程。所以我可以使用Runtime。Runtime.getRuntime().exec("java -Xms256M -Xmx256M -jar /home/HauptServer/Games/game1/cloud.jar -p "+port)
但这不会设置工作目录。所以我使用了ProcessBuilder,尝试了这个:ProcessBuilder prb = new ProcessBuilder("java","-Xms256M","-Xmx256M","-jar","cloud.jar","-p",""+port).directory(new File("/home/HauptServer/Games/game1"));
但是在这种情况下它不是独立于我原来的Process运行的。
你有什么解决方案吗?
答案 0 :(得分:0)
使用Runtime.getRuntime().exec(String[] cmdarray, String[] envp, File dir)
在单独进程中执行指定的命令和参数 使用指定的环境和工作目录。
不要使用单行命令(java -jar ...
)。使用cmdarray[]
并在dir
工作目录
实施例
String cmdArray[] = new String[7];
cmdArray[0] = "java";
cmdArray[1] = "-Xms256M";
cmdArray[2] = "-Xmx256M";
cmdArray[3] = "-jar";
cmdArray[4] = "/home/HauptServer/Games/game1/cloud.jar";
cmdArray[5] = "-p";
cmdArray[6] = port;