在Java virtualmachine中加载代理时出错
在虚拟机中加载代理时,我遇到以下错误。 有人能解释为什么会发生这种错误吗 代理代码在Java virtualmachine中加载代理时出错,java,Java,在虚拟机中加载代理时,我遇到以下错误。 有人能解释为什么会发生这种错误吗 代理代码 VirtualMachine localVirtualMachine = VirtualMachine.attach(pid); localVirtualMachine.loadAgent(agentPath); localVirtualMachine.detach(); Agent: static { try {
VirtualMachine localVirtualMachine = VirtualMachine.attach(pid);
localVirtualMachine.loadAgent(agentPath);
localVirtualMachine.detach();
Agent:
static {
try {
java.security.AccessController.doPrivileged(
new java.security.PrivilegedAction() {
public Object run() {
System.loadLibrary("JavaAccessBridge-64");
return null;
}
});
} catch (Throwable e) {
System.out.println("Exception ");
e.printStackTrace();
System.out.println("Exception ");
}
}
C:\Users\mahendra>java-jar C:\Users\mahendra\Desktop\SwingSet2.jar
线程“附加侦听器”java.lang.UnsatifiedLinkError中出现异常:
本机库rary C:\程序
文件\Java\jre1.8.0\u 112\bin\JavaAccessBridge-64.dll已加载到
另一个类加载器
位于java.lang.ClassLoader.loadLibrary0(未知源)
位于java.lang.ClassLoader.loadLibrary(未知源)
位于java.lang.Runtime.loadLibrary0(未知源)
位于java.lang.System.loadLibrary(未知源)
Test.TestBridge$1.run(TestBridge.java:5857)
位于java.security.AccessController.doPrivileged(本机方法)
TestBridge.(TestBridge.java:5848)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源)
位于java.lang.reflect.Method.invoke(未知源)
在sun.instrument.InstrumentationImpl.loadClassAndStartAgent(未知Sou
(rce)
在sun.instrument.InstrumentationImpl.loadClassAndCallAgentmain(未知
源代码)代理无法启动
消息似乎很清楚:“Files\Java\jre1.8.0\u 112\bin\JavaAccessBridge-64.dll已加载到另一个类加载器中”。。。这段代码可能会运行多次吗?谢谢您的快速回复。Java swingset2.jar已在使用此dll。但是Java虚拟机提供了将dll附加到同一jvm的功能。