无法在IA 32位平台上加载AMD 64位.dll文件

17

我下载了用于线性规划的Gurobi软件包,并导入了相应的gurobi.jar包。然后运行示例程序,但出现以下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\gurobi460\win64\win64\bin\GurobiJni46.dll: 无法在 IA 32 位平台上加载 AMD 64 位 .dll

然后我下载了 Windows 64 位 JRE,并使用“窗口-->首选项-->已安装的 JRE”来安装这个新的 JRE。

但是,仍然出现了这个错误。


你正在使用哪种/版本的 Windows? - andrew cooke
3个回答

22

如果你在安装了64位JRE后仍然遇到该错误,这意味着运行Gurobi包的JVM仍然使用32位JRE。

检查你全局和正在使用的命令行 shell 的 PATH 和 JAVA_HOME 是否已更新。(也许你只需要退出并重新启动它。)

通过运行“java -version”检查命令行 shell 运行的 Java 版本是否正确,并检查其是否显示为64位JRE。

如果你是通过包装脚本/批处理文件来启动示例,请确保脚本使用正确的JRE。必要时进行修改...

如果你是通过IDE来启动示例,请检查IDE是否使用正确的JRE进行启动。 检查并修改IDE配置。细节将取决于你使用的IDE。请检查文档。(在这种情况下,仅设置外部环境变量如JAVA_HOME可能不足够。)


1
如果我使用Eclipse运行程序,是否仍需要设置PATH和classpath?JAVA_HOME是为JDK而设。现在我选择在Eclipse中使用JDK 1.6作为编译器。我该如何设置它?我只安装了64位的JRE Windows。 - Guihua
1
我明白了。我还需要在Eclipse中设置“运行配置”的JRE。 - Guihua
2
是的。(您没有在问题中提到您正在使用Eclipse。) - Stephen C

0

请尝试以下步骤:

  1. 下载并安装32位JDK。
  2. 进入Eclipse,点击您的项目(Run As → Run Configurations...)下的Java Application分支。
  3. 转到JRE选项卡,选择备用JRE。单击已安装的JRE按钮,添加您的32位JRE并选择。

我认为你弄错了。错误信息显示Gurobi正在加载一个64位的DLL,但平台是32位的。如果你下载、安装、配置并使用32位的JDK来运行Gurobi,那么平台仍然是32位。和之前一样的问题。DLL仍然无法加载。 - Stephen C

-6

卸载(删除)以下程序:jre,jdk,eclipse。 下载这些程序的32位(x86)版本:jre,jdk,eclipse。 然后安装它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接