3

请考虑以下场景:

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

4

1 回答 1

7

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

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

于 2013-04-24T10:17:50.153 回答