我正在尝试将IntelliJ java Web应用程序项目(Maven Project)从linux系统导入Windows系统。这个java程序依赖于2个外部库来运行。
在Linux系统上,当我运行我的测试用例(并成功通过)时,两个库加载都很好,但是当我移动到Windows系统时,其中一个库不再正常工作(是的,我确实得到了approproaite windows二进制文件)。
我一直收到错误
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\Admin\Desktop\SAINT\Packages\cellml-sdk-1.9\lib\cellml_java_bridge.dll: Can't find dependent libraries
此时我不确定我做错了什么,因为.dll存在于目录中。 .dll的位置也出现在windows PATH变量中,我已经使用-Djava.library.path = C指定了java:C:\ Users \ Admin \ Desktop \ SAINT \ Packages \ cellml-sdk-1.9 \ lib < / p>
由于
答案 0 :(得分:1)
查看事件日志中的Windows并排(SxS)消息。他们可能会指出丢失的dll。如果没有,请使用dependency walker
答案 1 :(得分:0)
错误消息显示:找不到依赖库。您拥有的DLL需要其他DLL,它们需要位于PATH环境变量中的目录中,而不是java.library.path。
要查看依赖项是什么,可以使用objdump。
您还没有将.dll文件的完整路径添加到PATH,对吗?只需将包含依赖项的目录放入路径即可。