繁体   English   中英

使用64位JDK 1.7.0加载64位dll

[英]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 FilesProgram 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM