【发布时间】:2017-08-13 01:54:12
【问题描述】:
我有一个启动服务器的第三方 .bat 文件 (wso2server.bat)。
我是从
开始的Process process = Runtime.getRuntime.exec(cmd /C start cmd /C C:\wso\wso2esb-4.9.0\bin\wso2server.bat);
我试图阻止这个
process.destroy();
and
process.destroyForcibly();
process.isAlive() 在销毁后返回“false”。但是服务器还在运行!
我也尝试过运行
ProcessBuilder pb = new ProcessBuilder(params);
process = pb.start();
并停止它,但没关系,我如何启动它,java.exe - 和服务器 - 仍在运行,我无法停止它。 我认为这是因为 .bat 启动了另一个进程......
那么,我怎样才能停止这个 java.exe?
【问题讨论】:
-
只使用
Runtime.getRuntime().exec("cmd /c start C:\wso\wso2esb-4.9.0\bin\wso2server.bat");有什么问题?甚至可能是Runtime.getRuntime().exec("cmd /c C:\wso\wso2esb-4.9.0\bin\wso2server.bat");? -
cmd /c start :服务器启动,但不能停止(同上) 但是使用 cmd /c :服务器不启动。 java.exe 出现在任务管理器中,但 Http 站点不可用。
-
在这种情况下启动不是对服务器的指令,它是对批处理文件的指令,我不明白为什么
cmd /c file.bat不会启动服务器。你的bat文件内容是什么? -
据我了解,在 Windows 中,您将使用
C:\wso\wso2esb-4.9.0\bin\wso2server.bat --run启动服务器,并且需要在该 cmd.exe 窗口中执行Ctrl-C才能停止该服务器。
标签: java windows batch-file cmd process