首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从java应用程序运行在vmware工作站中创建的虚拟机

问从java应用程序运行在vmware工作站中创建的虚拟机
EN

Stack Overflow用户
提问于 2015-05-30 06:47:38
回答 1查看 553关注 0票数 0

我对vmware了解不多。我找到了启动vm的代码。但是我需要关于URL +用户名+密码的信息。如何获取此数据?

代码语言:javascript
复制
     package com.vmware.vim25.mo.samples.vm;

        import java.net.URL;

        import com.vmware.vim25.mo.Folder;
        import com.vmware.vim25.mo.InventoryNavigator;
        import com.vmware.vim25.mo.ServiceIns

tance;
    import com.vmware.vim25.mo.Task;
    import com.vmware.vim25.mo.VirtualMachine;

    /**
     * http://vijava.sf.net
     * @author Steve Jin
     */

    public class VMpowerOps 
    {
      public static void main(String[] args) throws Exception 
      {
        if(args.length!=5)
        {
          System.out.println("Usage: java VMpowerOps <url> " +
                "<username> <password> <vmname> <op>");
          System.out.println("op - reboot|poweron|poweroff" +
                "|reset|standby|suspend|shutdown");
          System.exit(0);
        }

        String vmname = args[3];
        String op = args[4];

        ServiceInstance si = new ServiceInstance(
            new URL(args[0]), args[1], args[2], true);

        Folder rootFolder = si.getRootFolder();
        VirtualMachine vm = (VirtualMachine) new InventoryNavigator(
          rootFolder).searchManagedEntity("VirtualMachine", vmname);

        if(vm==null)
        {
          System.out.println("No VM " + vmname + " found");
          si.getServerConnection().logout();
          return;
        }

        if("reboot".equalsIgnoreCase(op))
        {
          vm.rebootGuest();
          System.out.println(vmname + " guest OS rebooted");
        }
        else if("poweron".equalsIgnoreCase(op))
        {
          Task task = vm.powerOnVM_Task(null);
          if(task.waitForMe()==Task.SUCCESS)
          {
            System.out.println(vmname + " powered on");
          }
        }
        else if("poweroff".equalsIgnoreCase(op))
        {
          Task task = vm.powerOffVM_Task();
          if(task.waitForMe()==Task.SUCCESS)
          {
            System.out.println(vmname + " powered off");
          }
        }
        else if("reset".equalsIgnoreCase(op))
        {
          Task task = vm.resetVM_Task();
          if(task.waitForMe()==Task.SUCCESS)
          {
            System.out.println(vmname + " reset");
          }
        }
        else if("standby".equalsIgnoreCase(op))
        {
          vm.standbyGuest();
          System.out.println(vmname + " guest OS stoodby");
        }
        else if("suspend".equalsIgnoreCase(op))
        {
          Task task = vm.suspendVM_Task();
          if(task.waitForMe()==Task.SUCCESS)
          {
            System.out.println(vmname + " suspended");
          }
        }
        else if("shutdown".equalsIgnoreCase(op))
        {
          Task task = vm.suspendVM_Task();
          if(task.waitForMe()==Task.SUCCESS)
          {
            System.out.println(vmname + " suspended");
          }
        }
        else
        {
          System.out.println("Invalid operation. Exiting...");
        }
        si.getServerConnection().logout();
      }
    }
EN

回答 1

Stack Overflow用户

发布于 2015-05-30 06:53:57

您引用的代码适用于VMware vSphere (ESX或vCenter -企业服务),而不是基于桌面的VMware工作站。

有关其他参考信息,请参考示例顶部的网址:http://vijava.sourceforge.net/。另请参阅:https://developercenter.vmware.com/-/connect-to-vsphere-from-a-java-program-getting-started-。

对于VMware工作站,看起来您应该能够使用vmrun。有关这方面的文档,请访问https://www.vmware.com/support/developer/vix-api/vix112_vmrun_command.pdf。我还在http://www.virtualizationadmin.com/articles-tutorials/vmware-esx-and-vsphere-articles/managing-workstation-and-vsphere-vmrun-command.html上找到了另一篇文章。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30540204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档