VirtualBox: Mit dem SDK-API starten ein Programm im Gast?
Ich würde gerne ein Java-Programm schreiben, das startet ein Programm (z.B. Firefox) in eine VirtualBox-guest-Maschine. Der host ist Windows und der Gast Ubuntu. Nach der SDK-Dokumentation sollte es möglich sein, dies zu tun. Hier ist mein Versuch, in Java basierend auf dem, was ich gesehen habe in der Dokumentation (dies meint die VM läuft):
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();
Wenn ich diese ausführe, bekomme ich:
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)
Ich habe versucht, verschiedene Optionen mit dem Schloss und Sitzungen, aber immer irgendeine Art von Fehler. Wenn ich legen Sie die LockType zu Schreiben, bekomme ich "Fehler beim zuweisen der Maschine, um die Sitzung" Fehler.
Hat jemand dies getan? Gibt es irgendwelche festen VirtualBox Java tutorials online? Ich finde nichts mit Google.
Jede Beratung geschätzt.
- Hast du eine Lösung finden @TrentCoder?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß auch nicht, wie das mit dem SDK. Aber haben Sie versucht, senden Sie die commend über SSH der virtuellen Maschine? Sue müssen Sie das Netzwerk einrichten und all das, aber es wäre eine gute alternative, da das fehlen von VirtualBox SDK-Dokumentation macht es kompliziert zu archivieren.
Haben Sie versucht, zu warten, bis die Gast-Sitzung gestartet wird. In Ihrem Fall sollte dies so etwas sein
GuestSessionWaitForFlag_Start
eher als1L
?