每次我使用Java Attach API时,都不会返回有效的VirtualMachines。我已经尝试迭代VirtualMachine.list()返回的列表,并且每当我认为我已经获得进程ID时,我尝试使用VirtualMachine.attach()并且它给了我一个NullPointerException,因为attach()方法本身永远不会初始化它试图抛出的异常。我正在通过Eclipse和应用程序本身的Windows进程运行该项目,当它运行时是javaw.exe。我做错了什么?
答案 0 :(得分:3)
当我使用JRE中的java.exe而不是JDK中的java.exe时,我遇到了类似的问题。
通过eclipse执行的应用程序运行良好,并且通过VirtualMachine.list()正确检测到所有VM,但是当我尝试使用来自JRE的java.exe执行独立应用程序时,未检测到任何VM。 然后我注意到我在eclipse中使用JDK,所以我已经将我的独立应用程序中的java.exe从JDK改为java,一切运行良好。
将您的eclipse项目的运行时JRE更改为JDK,然后重试。这可能会解决您的问题。