Tôi muốn viết một chương trình Java khởi chạy chương trình (ví dụ: Firefox) trong máy khách VirtualBox. Máy chủ là Windows và khách là Ubuntu. Theo tài liệu SDK, bạn có thể thực hiện việc này. Đây là nỗ lực của tôi trong Java dựa trên những gì tôi đã nhìn thấy trong tài liệu (điều này giả VM được lên và chạy):VirtualBox: Sử dụng API SDK để khởi chạy chương trình trong ứng dụng khách?
String machineName = "MyMachine";
String url = "http://localhost:18083";
String user = "";
String passwd = "";
VirtualBoxManager mgr = VirtualBoxManager.createInstance(null);
mgr.connect(url, user, passwd);
IVirtualBox vbox = mgr.getVBox();
System.out.println("Running VirtualBox version " + vbox.getVersion());
IMachine machine = vbox.findMachine(machineName);
ISession session = mgr.getSessionObject();
machine.lockMachine(session, LockType.Shared);
IConsole console = session.getConsole();
IGuest guest = console.getGuest();
IGuestSession guestSession = guest.createSession("bob","password", "", "");
guestSession.processCreate("/usr/bin/firefox", null, null, null, 0L);
session.unlockMachine();
Khi tôi chạy này, tôi nhận được:
Exception in thread "main" org.virtualbox_4_2.VBoxException: VirtualBox error: The session is not locked (session state: Unlocked) (0x8000FFFF)
at org.virtualbox_4_2.ISession.getConsole(ISession.java:145)
at Test1.main(Test1.java:27)
tôi đã thử các tùy chọn khác nhau với các khóa và phiên, nhưng luôn có một số loại lỗi. Nếu tôi đặt LockType thành Write, tôi gặp lỗi "Không thể gán máy cho phiên".
Có ai đã làm điều này không? Có bất kỳ hướng dẫn Java VirtualBox rắn trực tuyến nào không? Tôi không thể tìm thấy bất kỳ thứ gì với Google.
Bất kỳ lời khuyên nào được đánh giá cao.
Bạn đã tìm thấy một @TrentCoder sửa chữa? – aandis