java - 从 Java 打开和关闭应用程序

标签 java file pid

我想制作一个程序来打开和关闭您计算机上安装的应用程序。

我知道使用

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/

相关文章:

c - C-文件的read()错误,数组存储和正确打印输出

c++ - 如何在 C++ 中将整个文本文件复制到 char 数组中

c++ - EnumWindows() 捕获选项卡进程 (Google Chrome) C++

mysql - mysqld进程可以被杀死吗?

java - 应用程序执行时不使用 spring.cloud.config 的 application.yml 中的设置

java - JPA 和 DTO,创建 DTO 的最佳方式?

Java 使用带有 try-with-resources 的扫描器

Java Spring 5 Get 和 findById mongo MonoOnErrorResume

android - 在 Android 上保存数据 : File Storage vs SQLite Database vs Shared Preferences

linux - 可执行文件可以动态解析其在文件系统上的位置或其实际的 "resting place"与用户的工作目录吗?