解决 Java 加载 Native 库 'msvcr110.dll' 冲突问题
要避免出现 'Native Library D:\syySdfHsm\msvcr110.dll already loaded in another classloader' 错误,可以使用 Java 的 'System.loadLibrary()' 方法来加载动态链接库,而不是使用 'System.load()' 方法。
首先,确保你的代码中只有一个地方加载 msvcr110.dll,最好在主类的静态代码块中加载。接下来,将 msvcr110.dll 的加载移到一个单独的类中,并将其声明为静态方法。这样,你只需要在需要加载 dll 的地方调用这个静态方法即可。
以下是示例代码:
public class NativeLibraryLoader {
public static void loadMsvcr110() {
System.loadLibrary('msvcr110');
}
}
然后,在你的主类中,可以在静态代码块中调用 'NativeLibraryLoader.loadMsvcr110()' 来加载 msvcr110.dll:
public class MainClass {
static {
NativeLibraryLoader.loadMsvcr110();
}
public static void main(String[] args) {
// ...
}
}
通过以上方法,你可以避免 'Native Library already loaded in another classloader' 错误,并正确加载 msvcr110.dll。
原文地址: https://www.cveoy.top/t/topic/qqKo 著作权归作者所有。请勿转载和采集!