在我的情况下 java.lang.UnsatisfiedLinkError 的原因是什么
What's the cause of java.lang.UnsatisfiedLinkError in my situation
我用 Visual Studio 2008 构建了一个 dll,它由 java 端通过 jni 调用。
它在 A 机器上工作正常,但在 B 机器上失败。
错误信息是这样的:
java.lang.UnsatisfiedLinkError:xxx.dll 找不到依赖库
配置信息如下(OS和jdk相同):
一台机器:
- Win7 64 位;
- java 版本“1.7.0_21”Java(TM) SE 运行时环境(build 1.7.0_71-b14)
Java HotSpot(TM) 客户端 VM(构建 24.71-b01,混合模式,共享)
- eclipse-standard-kepler-SR2-win32-x86_64
B机:
- Win7 64 位;
- java 版本“1.7.0_65”Java(TM) SE 运行时环境(build 1.7.0_65-b19)
Java HotSpot(TM) 客户端 VM(构建 24.71-b01,混合模式,共享)
- eclipse-java-luna-SR1a-win32
dll的代码生成是多线程调试(/MTd).
我不知道原因,如果您需要更多信息来判断原因,请告诉我。
提前感谢您的帮助。
要查找丢失的依赖项,请使用 Dependency Walker。打开您的 DDL,它将显示它所依赖的所有 DDL。它还会告诉您在当前系统中找不到哪个。
java.lang.UnsatisfiedLinkError:xxx.dllCan't find dependent libraries在B机抛出A机不抛是因为那个dll的依赖库可以'被B机的dll发现并修复,可以将依赖库的路径添加到环境路径中。要获取依赖库,请遵循@SubOptimal 的建议。
我用 Visual Studio 2008 构建了一个 dll,它由 java 端通过 jni 调用。 它在 A 机器上工作正常,但在 B 机器上失败。 错误信息是这样的: java.lang.UnsatisfiedLinkError:xxx.dll 找不到依赖库
配置信息如下(OS和jdk相同):
一台机器:
- Win7 64 位;
- java 版本“1.7.0_21”Java(TM) SE 运行时环境(build 1.7.0_71-b14) Java HotSpot(TM) 客户端 VM(构建 24.71-b01,混合模式,共享)
- eclipse-standard-kepler-SR2-win32-x86_64
B机:
- Win7 64 位;
- java 版本“1.7.0_65”Java(TM) SE 运行时环境(build 1.7.0_65-b19) Java HotSpot(TM) 客户端 VM(构建 24.71-b01,混合模式,共享)
- eclipse-java-luna-SR1a-win32
dll的代码生成是多线程调试(/MTd).
我不知道原因,如果您需要更多信息来判断原因,请告诉我。
提前感谢您的帮助。
要查找丢失的依赖项,请使用 Dependency Walker。打开您的 DDL,它将显示它所依赖的所有 DDL。它还会告诉您在当前系统中找不到哪个。
java.lang.UnsatisfiedLinkError:xxx.dllCan't find dependent libraries在B机抛出A机不抛是因为那个dll的依赖库可以'被B机的dll发现并修复,可以将依赖库的路径添加到环境路径中。要获取依赖库,请遵循@SubOptimal 的建议。