【发布时间】:2010-09-09 16:11:52
【问题描述】:
我有一个与一组第三方库交互的 JNI 库,系统上可能存在多个版本的第三方库。对于第三方库的每个版本,出于可比性的原因,我都必须重新编译 JNI 代码。现在我通过加载具有特定名称的 DLL 来处理这个问题,如果版本发生变化,我会更改 JNI 接口 DLL 的名称,以便该版本的正确名称具有正确的名称来加载。
我希望能够根据用户想要使用的版本动态加载 dll。如果我在名称不同但方法签名相同的 DLL 上调用 System.loadLibrary 两次会发生什么?
System.loadLibrary("JNIv1");
// Same code compiled against a different third party version
System.loadLibrary("JNIv2");
我一次只需要使用其中一个版本,所以如果旧版本不再可用也没关系。
是否可以在不重新启动程序的情况下加载具有相同方法签名的两个不同版本的 DLL?
【问题讨论】:
标签: java java-native-interface