AttachNotSupportedException:未安装提供程序java代理
我无法将java应用程序连接到远程java vm。 我在Windows7上使用Java8U45,我的附加代码非常简单AttachNotSupportedException:未安装提供程序java代理,java,exception,instrumentation,javaagents,Java,Exception,Instrumentation,Javaagents,我无法将java应用程序连接到远程java vm。 我在Windows7上使用Java8U45,我的附加代码非常简单 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.s
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\u HOME%\jre\bin中的attach.dll库
等等
他们都不为我工作
你知道会有什么问题吗?
谢谢包括以下代码行,它应该可以工作。它需要attach.dll文件才能工作
static
{
System.loadLibrary("attach");
}
将IDE的jre依赖项从jre更改为jdk。
至于eclipse,Window->Preferences->Java->Installed jre,用jdk替换jre。remote是指在同一台机器上还是在不同的机器上?在同一台机器上,但在不同的Java进程中,如果您为运行进程传递了正确的PID,我尝试了相同的代码并传递了eclipse运行的PID,我可以看到它得到AttacheDiges,进程id与所需进程相同。请记住,我不想将它附加到我自己的进程(从eclipse运行)上,而是附加到另一个java进程上。您能提供完整的堆栈跟踪吗?