AttachNotSupportedException:未安装提供程序java代理

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

我无法将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.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进程上。您能提供完整的堆栈跟踪吗?