我想编写一个Java程序,在VirtualBox客户机中启动程序(例如:Firefox).主机是Windows,客户端是Ubuntu.根据SDK文档,应该可以这样做.这是我基于我在文档中看到的Java尝试(假设VM启动并运行):
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();
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我得到:
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)
Run Code Online (Sandbox Code Playgroud)
我已尝试使用锁和会话的不同选项,但总是会遇到某种类型的错误.如果我将LockType设置为Write,我会收到"无法将机器分配给会话"错误.
有没有人这样做过?在线是否有任何可靠的Java VirtualBox教程?我找不到Google的任何内容.
任何建议表示赞赏
我也不知道如何用SDK来做。但是您是否尝试过通过 SSH 将命令发送到虚拟机?Sue,你需要设置网络等,但这将是一个很好的选择,因为缺乏 VirtualBox SDK 文档使得归档变得复杂。
| 归档时间: |
|
| 查看次数: |
5167 次 |
| 最近记录: |