在我的 java 应用程序中我使用
Runtime.getRuntime().exec("taskkill /F /IM " + explorer.exe).waitFor();
关闭 Windows 资源管理器。这部分有效,因为 Explorer 真的不再为我工作。
不幸的是,当我使用
Runtime.getRuntime().exec("explorer.exe");
Windows 资源管理器根本不会重新启动。我应该如何正确重启它?
最佳答案
我不知道这对你不起作用的原因,因为你正在从 java 执行外部程序,我认为它没有重新启动不是 Java 的错,也许你的方式有问题重新开始。 我会给你一个替代方案:
不要使用 Runtime.exec()
,而是尝试使用 ProcessBuilder.start()
来启动进程并
使用类 Process
中的方法 destroy()
终止进程。
它应该可以正常工作,只需使用构建器创建一个代表资源管理器的对象并将其分配给 Process
类型的变量。
我认为如果您使用 ProcessBuilder 可能会更容易的唯一原因是因为它将参数作为单独的字符串,并且这可能使您更容易配置脚本。
例子:
List<String> params = java.util.Arrays.asList("C:\myProgram.exe", "-arg1", "-arg2");
ProcessBuilder pb = new ProcessBuilder(params);
Process process = pb.start();
尝试一下,我认为它应该有效。
关于java - 为什么我的 Java 应用程序成功关闭 Windows 资源管理器,但无法再次重新启动它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14092950/