正在尝试 运行 来自 Java 的应用程序
Trying to run an application from Java
我需要 运行 "VBoxManage vms list command" 从 Java 应用程序查看安装在计算机上的虚拟机。
以下代码可以正常工作,但前提是我使用运行时 class 但我想知道为什么如果我使用 ProcessBuilder 会失败。
代码如下:
public static void main(String[] args) throws IOException {
String folder= "c:/Program files/Oracle/VirtualBox";
List<String> comand = Arrays.asList(
"VBoxManage",
"list",
"vms"
);
ProcessBuilder pb = new ProcessBuilder()
.directory(new File(folder))
.command(comand);
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while((line=br.readLine()) != null){
System.out.println(line);
}
}
如果我将运行时 class 与以下代码一起使用,则效果很好:
运行时间 运行time = Runtime.getRuntime();
进程 p = runtime.exec("c:/Program files/Oracle/VirtualBox/vboxmanage list vms");
谢谢。
尝试使用可执行文件的完整路径,就像使用 Runtime.exec
时一样
List<String> comand = Arrays.asList(
"c:/Program files/Oracle/VirtualBox/VBoxManage",
"list",
"vms"
);
我需要 运行 "VBoxManage vms list command" 从 Java 应用程序查看安装在计算机上的虚拟机。
以下代码可以正常工作,但前提是我使用运行时 class 但我想知道为什么如果我使用 ProcessBuilder 会失败。
代码如下:
public static void main(String[] args) throws IOException {
String folder= "c:/Program files/Oracle/VirtualBox";
List<String> comand = Arrays.asList(
"VBoxManage",
"list",
"vms"
);
ProcessBuilder pb = new ProcessBuilder()
.directory(new File(folder))
.command(comand);
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while((line=br.readLine()) != null){
System.out.println(line);
}
}
如果我将运行时 class 与以下代码一起使用,则效果很好: 运行时间 运行time = Runtime.getRuntime(); 进程 p = runtime.exec("c:/Program files/Oracle/VirtualBox/vboxmanage list vms");
谢谢。
尝试使用可执行文件的完整路径,就像使用 Runtime.exec
时一样List<String> comand = Arrays.asList(
"c:/Program files/Oracle/VirtualBox/VBoxManage",
"list",
"vms"
);