Java 64位错误“UnsatisfiedLinkError:找不到指定的过程”

时间:2013-11-19 14:06:58

标签: java java-native-interface unsatisfiedlinkerror

我的Java应用程序在开始时加载了JNI dll,我们使用system.load()以其完整路径加载DLL。我们用64位JDK编译了Java代码,我们尝试加载的dll也编译为64位。

当我尝试使用c:\​​ windows \ system32中的java.exe启动Java应用程序时,它成功启动了应用程序,当我尝试使用位于安装位置的java.exe启动相同的Jar时即,%programfiles%\ java \ jre7 \ bin然后失败并出现错误" UnsatisfiedLinkError:找不到指定的过程"。

有人可以解释c:\ windows \ system32和安装位置的java.exe之间的区别吗?

2 个答案:

答案 0 :(得分:0)

两个可执行文件之间没有区别;他们是一样的。您的问题是您的DLL位置与启动Java环境的位置相关。

需要修改属性java.library.path以指向DLL所在的位置。您可以通过传递-Djava.library.path =

来更改此属性

答案 1 :(得分:0)

最后我的问题解决了。

libxml2的实际问题。我的applicat9on依赖于libxml2。 JRE 1.7.07 onards开始使用libxml2并发送到JRE位置。因此,不同的libxml2 DLL之间存在冲突。我已经修改了应用程序以动态加载libxml2并删除了依赖项。