Java 小程序问题 : dll already loaded in another classloader

标签 java applet java-native-interface classloader

我需要创建一个加载本地 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/

相关文章:

Java 小程序和 Firefox 无响应错误消息

java - Ruby 路径和带有存档的小程序

java.lang.UnsatisfiedLinkError 即使设置了 LD_LIBRARY_PATH 和 -Djava.library.path

java - 如何从 JNI 中的类中提取枚举?

java - 尝试使用字段数组作为参数时出现 NullPointerException

java - Java Applet 中的 TAB 键

java - 如何在 Spring 中抽象出 java.time.Clock 用于测试目的

android - 使用 JNI 通过 UNIX 域套接字发送 Java FD

java - 我们如何在 XText Grammar 中调用 Java UDF?

java - JPA 2 : Determine an entitys id by looking up JoinColumn - Shared primary key in one-to-one relation