Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.virtualbox_4_1.AccessMode;
- import org.virtualbox_4_1.DeviceType;
- import org.virtualbox_4_1.IMachine;
- import org.virtualbox_4_1.IMedium;
- import org.virtualbox_4_1.IProgress;
- import org.virtualbox_4_1.ISession;
- import org.virtualbox_4_1.IVirtualBox;
- import org.virtualbox_4_1.LockType;
- import org.virtualbox_4_1.StorageBus;
- import org.virtualbox_4_1.VirtualBoxManager;
- public class TestVBox {
- private static VirtualBoxManager manager = VirtualBoxManager.createInstance(null);
- private static IVirtualBox virtualBox = manager.getVBox();
- private static IMachine machine;
- public static void main(String[] args) throws InterruptedException {
- machine = virtualBox.createMachine(null, "Test VM", "Linux26", null, false);
- machine.setMemorySize(512L);
- machine.addStorageController("ide", StorageBus.IDE);
- machine.saveSettings();
- virtualBox.registerMachine(machine);
- ISession session = manager.getSessionObject();
- machine.lockMachine(session, LockType.Write);
- IMachine mutable = session.getMachine();
- // Attach CD/DVD drive
- mutable.attachDevice("ide", 1, 0, DeviceType.DVD, null);
- mutable.saveSettings();
- session.unlockMachine();
- launchVM();
- /**
- * Mount tests
- */
- mountIso("/images/ubuntu-11.04-desktop-amd64.iso");
- System.out.println(machine.getMedium("ide", 1, 0));
- unmountIso();
- System.out.println(machine.getMedium("ide", 1, 0));
- stopVM();
- // if I don't sleep here, there is an exception "The function "launchVMProcess" returned an error condition: "The machine 'Test VM' is already locked by a session (or being locked or unlocked)" (0x80bb0007)"
- Thread.sleep(1000);
- launchVM(); // Exception: The function "waitForCompletion" returned an error condition: "Operation aborted (NS_ERROR_ABORT)" (0x80004004)
- }
- private static void launchVM() {
- ISession session = manager.getSessionObject();
- IProgress progress = machine.launchVMProcess(session, "headless", "");
- progress.waitForCompletion(5000);
- }
- private static void stopVM() {
- ISession session = manager.getSessionObject();
- machine.lockMachine(session, LockType.Shared);
- IProgress progress = session.getConsole().powerDown();
- progress.waitForCompletion(5000);
- session.unlockMachine();
- }
- private static void mountIso(String isoPath) {
- ISession session = manager.getSessionObject();
- machine.lockMachine(session, LockType.Shared);
- IMedium medium = virtualBox.openMedium(isoPath, DeviceType.DVD, AccessMode.ReadOnly, true);
- machine.mountMedium("ide", 1, 0, medium, true);
- session.unlockMachine();
- }
- private static void unmountIso() {
- ISession session = manager.getSessionObject();
- machine.lockMachine(session, LockType.Shared);
- machine.mountMedium("ide", 1, 0, null, true);
- session.unlockMachine();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement