如何从Java运行系统应用程序(可执行文件)

如今, 在许多应用程序中, 必须在运行时依赖其他应用程序以保证应用程序的完整性。例如, 第三方应用程序的目标是存储来自计算机上安装的设备的签名。在Java中, 使用Runtime类非常容易, 该类允许应用程序与应用程序在其中运行的环境进行交互。例如, 在Windows中, 你将能够使用CLI中的别名notepad打开Notepad.exe应用程序, 因此, 对于Java, 你应该能够使用以下3行代码来启动notepad.exe应用程序:

Runtime runTime = Runtime.getRuntime(); String executablePath = "notepad"; Process process = runTime.exec(executablePath);

【如何从Java运行系统应用程序(可执行文件)】但是, 你将不会始终拥有可执行文件的快捷方式, 因此你需要提供可执行文件的绝对路径。在这篇简短的文章中, 我们将为你提供一个简短的摘要, 使你可以轻松地从系统启动第三方应用程序。
完整的例子打包在应用程序中的以下代码段将启动在executePath变量中定义的应用程序(可执行文件), 并将捕获该示例触发的任何异常:
package sandbox; import java.io.IOException; public class Sandbox {/*** Example of how to run an executable from Java.* * @param args */public static void main(String[] args) {try {Runtime runTime = Runtime.getRuntime(); String executablePath = "C:\\Users\\sdkca\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe"; Process process = runTime.exec(executablePath); } catch (IOException e) {e.printStackTrace(); }}}

如果可执行文件不存在, 则代码将捕获异常, 并在控制台中显示类似于以下内容的输出:
java.io.IOException: Cannot run program "my-executable-path.exe": CreateProcess error=2, The system cannot find the file specified at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) at java.lang.Runtime.exec(Runtime.java:620) at java.lang.Runtime.exec(Runtime.java:450) at java.lang.Runtime.exec(Runtime.java:347) at sandbox.Sandbox.main(Sandbox.java:18)Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified at java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.< init> (ProcessImpl.java:386) at java.lang.ProcessImpl.start(ProcessImpl.java:137) at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)

编码愉快!

    推荐阅读