如今, 在许多应用程序中, 必须在运行时依赖其他应用程序以保证应用程序的完整性。例如, 第三方应用程序的目标是存储来自计算机上安装的设备的签名。在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)
编码愉快!
推荐阅读
- 如何从Java中的JSON对象获取浮点值
- 如何解决Android Studio错误(无法解决符号”RandomAccessFile”)
- 如何使用Java检索Android设备上的可用RAM
- 如何在Java中打印三角形矩形图案(从左到右和从右到左)
- 如何在Java中轻松使用JSON
- Java技术指南「并发原理专题」AQS的技术体系之CLHMCS锁的原理及实现
- Java技术探索「开发实战专题」Lombok插件开发实践必知必会操作!
- Java ASM系列((056)opcode: method)
- 作为有经验的程序员如果不懂Lambda表达式就说不过去了吧,建议收藏!!!