我遇到了将我的Java应用程序附加到远程Java虚拟机的问题。 我在Windows 7上使用Java 8u45,我的附加代码非常简单。
import java.io.IOException;
import java.util.List;
import java.util.Scanner;
import com.sun.tools.attach.AttachNotSupportedException;
import com.sun.tools.attach.VirtualMachine;
import com.sun.tools.attach.VirtualMachineDescriptor;
import com.sun.tools.attach.spi.AttachProvider;
public class AgentLoader
{
public static void main(String[] args)
{
Scanner s = new Scanner(System.in);
String pid = s.next();
try
{
VirtualMachine vm = VirtualMachine.attach(pid);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
当调用attach时,我遇到了AttachNotSupportedException错误,并且提示没有安装提供程序。 我查看了一些网上的答案,发现有几个解决方案对我无效。 例如,确保在同一台机器上不要混合使用几个Java版本。 将PATH变量设置为指向位于%JAVA_HOME%\jre\bin中的attach.dll库等。 但是这些都没有对我起作用。 你有什么想法是问题所在吗? 谢谢。