我需要创建一个加载本地 DLL 的 Java 小程序。它工作正常,但只是第一次。如果我刷新页面,它总是通过抛出以下异常来提示:
Exception: java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Native Library E:\test.dll already loaded in another classloader
关于如何解决这个问题有什么想法吗?
这是我的代码:
public class NativeWrapper
{
public native String GetIP();
public NativeWrapper(final String nativeLib) {
try {
System.load(nativeLib);
} catch (UnsatisfiedLinkError e) {
System.out.println("UnsatisfiedLinkError exception" + e);
}
}
}
和小程序代码:
public class MyApplet extends Applet {
private static NativeWrapper dll = new NativeWrapper("e:/test.dll");
public MyApplet () {
}
// to be called by javascript on html page
public string GetIPAddress() {
return dll.GetIP();
}
}
我已经阅读了很多关于这个问题的资料,但仍然找不到解决方案。谁能帮忙?提前致谢。
最佳答案
This article似乎提供了一些很好的建议,以确保您为每个小程序调用获得相同的 ClassLoader
。
关于Java 小程序问题 : dll already loaded in another classloader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8680808/