个性化阅读
专注于IT技术分析

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

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

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

Process process = runTime.exec(executablePath);

但是, 你将不会始终拥有可执行文件的快捷方式, 因此你需要提供可执行文件的绝对路径。在这篇简短的文章中, 我们将为你提供一个简短的摘要, 使你可以轻松地从系统启动第三方应用程序。

完整的例子

打包在应用程序中的以下代码段将启动在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)

编码愉快!

赞(0)
未经允许不得转载:srcmini » 如何从Java运行系统应用程序(可执行文件)

评论 抢沙发

评论前必须登录!