2

我在 Windows 7 上使用 Java 1.7.0 并尝试加载位于C:/Program Files (x86)/Common Files/app_name/. 我收到以下错误

 Exception in thread "main" java.lang.UnsatisfiedLinkError:
 C:\Program Files (x86)\Common Files\app_name\app.dll: %1
 is not a valid Win32 application

我将 dll 复制到不同的目录(即C:\Temp),并且能够很好地加载 dll。我认为这个错误是由于 dll 位于下面Program Files (x86),而 java 正试图将它作为 32 位 dll 加载。JVM 是否对 dll 的 underProgram Files和做出某些假设Program Files (x86)

4

1 回答 1

0

这当然不是路径的问题。唯一的问题是您使用的是什么版本的 JavaVM。如果是 32 位版本的 Java,它将尝试将任何 DLL 作为 32 位 DLL 加载,如果是 64 位版本的 Java,它将尝试将任何 DLL 作为 64 位 DLL 加载。

所以,要么 - 您的系统上只安装了 32 位 Java,并尝试加载 64 位 DLL;或 - 您同时安装了 32 位和 64 位 Java,那么您需要确保使用 64 位版本进行测试。

您声称您已成功使用来自不同文件夹的 DLL 的事实表明后者,因此请确保您使用的 java 可执行文件是 64 位版本。

于 2013-03-24T21:12:31.163 回答