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

Rej*_*eji 3 java java-native-interface classloader

请考虑以下情形:

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

mab*_*aba 7

根据JNI规范,这是不可能的.

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