如何使用Oracle VirtualBox Java API关闭虚拟机?
我正在学习使用VirtualBox Java API,但文档不太好 我的代码:如何使用Oracle VirtualBox Java API关闭虚拟机?,java,virtualbox,Java,Virtualbox,我正在学习使用VirtualBox Java API,但文档不太好 我的代码: VirtualBoxManager virtualBoxManager = VirtualBoxManager.createInstance(null); IVirtualBox vbox = virtualBoxManager.getVBox(); List<IMachine> machines= vbox.getMachines(); for (IMachine m : machines) {
VirtualBoxManager virtualBoxManager = VirtualBoxManager.createInstance(null);
IVirtualBox vbox = virtualBoxManager.getVBox();
List<IMachine> machines= vbox.getMachines();
for (IMachine m : machines) {
System.out.println("Name: " + m.getName() + " OS: " + m.getOSTypeId());
virtualBoxManager.startVm(m.getName(), null, 7000); //Starting a VM
}
virtualBoxManager.cleanup();
VirtualBoxManager-VirtualBoxManager=VirtualBoxManager.createInstance(null);
IVirtualBox vbox=virtualBoxManager.getVBox();
List machines=vbox.getMachines();
用于(IMachine m:机器){
System.out.println(“Name:+m.getName()+”OS:+m.getOSTypeId());
virtualBoxManager.startVm(m.getName(),null,7000);//启动虚拟机
}
virtualBoxManager.cleanup();
如何停止虚拟机?添加一个描述,解释您所做的事情,而此代码可能会回答问题,提供有关如何和/或为什么解决问题的附加上下文,以提高答案的长期价值。-另见
import org.virtualbox_5_0.*;
public class VirtualboxVMStop {
public static void main(String[] args) {
String machineName = "Centos_1";
String url = "http://localhost:18083";
String user = "test";
String passwd = "test";
VirtualBoxManager mgr = VirtualBoxManager.createInstance(null);
mgr.connect(url, user, passwd);
// Get the virtual machine you need to connect to.
IVirtualBox vbox = mgr.getVBox();
IMachine machine = vbox.findMachine(machineName);
ISession session = null;
IProgress prog;
// Determine the status of the virtual machine.
MachineState state = machine.getState();
System.out.println(state);
if (MachineState.Running == state) {
session = mgr.getSessionObject();
machine.lockMachine(session, LockType.Shared);
prog = session.getConsole().powerDown();
prog.waitForCompletion(10000);
session.unlockMachine();
} else {
System.out.println(machineName+" is PoweredOff!");
}
}
}