我熟悉使用 PowerCLI 中提供的 VMware.Vim.dll 在 C# 中使用 VMware VIM API。现在我希望能够使用 Java 使用此 API 进行编程,但我找不到与之等效的 API。 vSphere SDK 中的 com.vmware.vim.jar 似乎不包含此处 API 引用中提到的所有类:
http://www.vmware.com/support/developer/vc-sdk/
具体来说,在 Java 中我不知道如何获取 VirtualMachine 实例。在 C# 中,我可以通过执行以下操作来获取独立虚拟机管理程序上的所有虚拟机:
String serviceUrl = "https://192.168.1.100/sdk/vimService";
String username = "root";
String password = "MyPassword";
VimClient client = new VimClient();
client.Connect(serviceUrl);
client.Login(username, password);
var virtualMachines = client.FindEntityViews(typeof(VirtualMachine), client.ServiceContent.RootFolder, null, null).OfType<VirtualMachine>();
如何使用 Java 获得它?
最佳答案
使用 VMware Infrastructure (vSphere) Java API,即下面的 vijava 代码可以查找 list 中的所有虚拟机。
String serviceUrl = "https://Your IP Address/sdk";
String username = "root";
String password = "MyPassword";
ServiceInstance si = new ServiceInstance(new URL(serviceUrl), username , password , true);
Folder rootFolder = si.getRootFolder();
ManagedEntity[] entities = new InventoryNavigator(rootFolder).searchManagedEntities("VirtualMachine");
for (ManagedEntity e : entities) {
vm = (VirtualMachine) e;
System.out.println("vm=" + vm.getName());
}
或者
http://sourceforge.net/p/vijava/discussion/826592/thread/a6c44685#5b30 ---集群环境下
关于powershell - 如何使用 VMware Java vSphere SDK 获取虚拟机引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20035576/