Мне нужно запустить «команду VBoxManage vms list», чтобы увидеть виртуальные машины, установленные на компьютере из приложения Java.
Следующий код работает правильно, но только если я использую класс Runtime, но я быхотел бы знать, почему это не удается, если я использую 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);
}
}
Это прекрасно работает, если я использую класс Runtime с этим кодом: Runtime runtime = Runtime.getRuntime ();Процесс p = runtime.exec ("c: / Program Files / Oracle / VirtualBox / vboxmanage list vms");
Спасибо.