【发布时间】:2012-11-30 14:00:21
【问题描述】:
我编写了 2 个方法来尝试从我的 Java 应用程序执行 Jar 文件,但它们都没有做任何事情。 Java Runtime Environment 安装在 C: 驱动器上,默认情况下其 Path 指向 C: 驱动器上的目录。我尝试执行的 Jar 文件位于 E: 驱动器上。
Jar 位置:E:\Demo Folder\MyDemo.jar
我尝试使用以下 2 种方法执行 MyDemo.jar:
方法一:
try {
Runtime.getRuntime().exec("cmd /c start %SystemDrive%\\java -jar " + "E:/Demo Folder/MyDemo.jar");
} catch (IOException ex) {
System.err.println(ex.getMessage());
}
方法二:
try {
File dirFile = new File("E:/Demo Folder/");
ProcessBuilder pb = new ProcessBuilder("java", "-jar", "E:/Demo Folder/MyDemo.jar");
pb.directory(dirFile);
Process p = pb.start();
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
【问题讨论】:
-
我会这样做,但我不知道总是知道安装了哪个版本的 java 以及安装到什么位置。在他的例子中,他得到了 /path/to/java
-
然后尝试从系统属性中读取Java的路径。应该是 Java.home
-
只是一个猜测,但您是否需要为项目设置环境变量(假设您使用的是 Eclipse)。换句话说,如果你从命令行运行你的应用程序,我敢打赌第二个会起作用。
-
我正在使用 NetBeans,我会尝试这两个建议。
标签: java cmd processbuilder