我在我的java文件中使用终端命令“java -jar secondApp.jar”来启动secondApp.jar。
即使第一个应用程序被杀,我也需要secondApp.jar才能运行。
此方案在Windows环境中完美运行。但是当我在linux环境(Ubuntu 16.04)中测试它时,似乎杀死第一个进程会杀死这两个进程。
这是我用来启动第二个应用程序的代码。
String command = "java -jar secondApp.jar"
Process process = Runtime.getRuntime().exec(command);
我做错了什么?
答案 0 :(得分:0)
使用所需的java命令准备批处理文件和linux脚本文件,然后尝试:
if (SystemUtils.IS_OS_WINDOWS) {
// run batch file
String batchFullPath = new File("C:\\myBatchFile.bat").getAbsolutePath();
Runtime.getRuntime().exec("cmd /C start " + batchFullPath);
} else if (SystemUtils.IS_OS_LINUX) {
// run linux script
String scriptFullPath = new File("~/myScriptFile.sh").getAbsolutePath();
File workingDir = new File("~");
Runtime.getRuntime().exec("/usr/bin/xterm " + scriptFullPath, null, workingDir);
} else {
throw new RuntimeException("Unsupported Operating System");
}
(使用xterm,因为假设每台Linux机器安装它都是相当安全的)