我想制作一个程序来打开和关闭您计算机上安装的应用程序。
我知道使用
Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL "+"M:\\myfile.doc");
打开Word文档myfile.doc
问题是使用此命令无法关闭执行该命令时打开的 Word 应用程序。
如何从 java 程序打开和关闭应用程序?
谢谢!
问候!
最佳答案
您可以尝试存储由 exec()
返回的 Process
并对其调用 destroy()
但我不认为这样做将会起作用,因为您正在执行一个 Windows 命令,该命令启动一个新进程,然后该进程不受 JVM 管理(JVM 只能看到 rundll32 东西)。
一个肯定有效但不会跨平台的解决方案(我认为你实际上并不关心,因为 Word 也不是跨平台的:)是使用另一个 Windows shell 命令来获取你想要的东西,就像
taskkill /IM word.exe
您可以像打开 Word 一样使用 defaultRuntime.exec(...)
来执行它。如果您打开了许多文字进程,并且想要终止某个特定进程,则必须解析任务列表以获取正确的 PID,然后尝试使用 taskkill/PID XXXX
。
关于java - 从 Java 打开和关闭应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4336616/