【问题标题】:Error when running a 32 bit .dll on a 64 bit JVM Inteliij在 64 位 JVM Intellij 上运行 32 位 .dll 时出错
【发布时间】:2018-12-14 17:40:32
【问题描述】:

当我尝试在我的项目中执行以下代码行时,我收到以下错误。我在我的项目属性中添加了一个 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-idea jvm


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-05-13
    • 2012-11-03
    • 2012-03-12
    • 2013-09-16
    • 2012-07-26
    • 2012-11-07
    • 2012-07-05
    • 2012-03-19
    • 1970-01-01
    相关资源
    最近更新 更多