我有一个应用程序,它使用3个不同的JAR库…让我们称之为a.jar,b.jar和c.jar.
这些JARS中的每一个都有一个伴随的本地C共享对象.
现在,a.jar和b.jar都导入并使用c.jar.
所以,我的问题是 – 使用system.loadLibrary加载本机库时最好的方法是什么?
我可以从我的应用程序代码中加载它们,还是必须由相应的JAR加载?
如果我从相应的JAR文件加载它们,将加载到一个单独的线程?
最佳答案 加载本机库是Classes的责任.
让我们假设每个jar文件也有一个名为A,B和C的类.所有这些类都需要加载它们的本机伴随,最有可能是通过静态方式.
class A {
static {
System.loadLibrary(“A”);
}
C c;
}
class C {
static {
System.loadLibrary(“C”);
}
}
在这种结构中,当你访问A类时,它将是加载和初始化类C的类加载器.