由不同的类加载器加载的相同本机库

时间:2013-04-24 10:08:59

标签: java java-native-interface classloader

请考虑以下情况:

我有两个使用不同系统类加载器加载的java类。我有一个实现了队列的本机库。这两个类都将加载相同的库,并将元素添加到队列中。可能吗?如果是这样,本地库实现是否将在两个类之间共享。?

1 个答案:

答案 0 :(得分:6)

根据JNI Specification,这是不可能的。

  

在JDK中,每个类加载器都管理自己的一组本机库。 无法将相同的JNI本机库加载到多个类加载器中。这样做会导致UnsatisfiedLinkError被抛出。例如,System.loadLibrary在用于将本机库加载到两个类加载器时抛出UnsatisfiedLinkError