[英]Loading a 64-bit dll with 64-bit JDK 1.7.0
我在Windows 7上使用Java 1.7.0,并尝试加载位于C:/Program Files (x86)/Common Files/app_name/
的64位dll。 我收到以下错误
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是否对Program Files
和Program Files (x86)
下的dll作了某些假设?
当然,这不是道路的问题。 唯一的问题是所使用的JavaVM版本。 如果是Java的32位版本,它将尝试将任何DLL加载为32位DLL,如果是Java的64位版本,它将尝试将任何DLL加载为64位DLL。
因此,要么-您的系统上仅安装了32位Java,然后尝试加载64位DLL; 或-您同时安装了32位和64位Java,则需要确保使用64位版本进行测试。
您声称已经成功使用了其他文件夹中的DLL的事实提示您使用后者,因此请确保使用的Java可执行文件是64位版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.