首页 > 解决方案 > 在 64 位 JVM Inteliij 上运行 32 位 .dll 时出错

问题描述

当我尝试在我的项目中执行以下代码行时,出现以下错误。我在我的项目属性中添加了一个 64 位 JDK。我使用 Intellij 作为我的 IDE

System.loadibrary(smsjavaagentapi)

致命错误:来自 System.loadibrary(smsjavaagentapi) java.lang.unsatisfiedLinkError smsjavaagentapi.dll 的异常:无法在 AMD 64 位平台上加载 IA 32 位 .dll

我认为问题在于我使用的是 64 位 JVM,而我正在尝试运行 32 位 .dll。我没有选择在我的机器上安装 32 位 JDK 并将其添加到我的项目属性中,我也无法将 .dll 移植到 64 位。有解决办法吗?

标签: intellij-ideajvm

解决方案


操作系统级别有一个限制,它会阻止 64 位进程加载 32 位共享库,因此您的选择是

  • 修改操作系统以允许这样做(不容易)
  • 通过重新编译将 DLL 迁移到 64 位。
  • 安装 32 位 JVM(更简单)
  • 下载一个 32 位的 JVM 并解压它而不安装它。(不需要任何特别许可)

您可能会发现您可以获得一个附带 32 位 JVM 的 IntelliJ 版本,或者安装另一个安装 32 位 JVM 并仅使用 JVM 的程序。


推荐阅读