我在java swing应用程序中触发了exe
。从ECLIPSE IDE运行应用程序时,我可以使用exe
终止"taskkill /PID ProcessID "
。但是当我尝试通过批处理文件为swing应用程序运行jar file
时,exe
不会因为我无法获取进程ID而终止。我使用的是Windows XP 32位。任何帮助将不胜感激
String sDosCommand = "cmd /c tasklist /FI " + "\"" + "IMAGENAME eq " + sProcessName + "\"" ;
Process process = Runtime.getRuntime().exec(sDosCommand );
此代码(经过修改以获得一个特定进程的process ID
)为我提供了Process ID
,而我在Taskkill
命令中使用了类似的执行
谢谢和问候 Arun Raj
答案 0 :(得分:1)
我假设您正在使用ProcessBuilder启动外部应用程序。如果不是,请考虑使用该类及其start()
方法启动外部应用程序,如Javadoc中所述。
调用start()
后,您将获得Process
,您可以在其上调用destroy()
来终止外部应用程序。
Process p = new ProcessBuilder("myCommand", "myArg").start();
...
p.destroy(); // this kills the command "myCommand"
答案 1 :(得分:0)
我弄清楚问题出在哪里。我正在从批处理文件中触发应用程序jar。该批次还修改了环境变量(准确地说是PATH),这阻止了我执行TASKKILL命令。我对批处理文件稍作修改以包含PATH环境变量。这解决了我的问题。
感谢所有人的帮助。 Arun Raj