java - 无法在 AMD 64 位平台上加载 IA 32 位 .dll

标签 java windows dll java-native-interface

我正在尝试使用 SVMLight来自 Java,使用 JNI wrapper on this page :

  static {
    System.loadLibrary("lib/JNI_SVM-light-6.01/lib/svmlight");
  }

我收到以下错误:

... lib\JNI_SVM-light-6.01\lib\svmlight.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform

我可以通过为 64 位重新编译 .dll 来解决这个问题吗? 我该怎么做?我可以使用其他一些解决方法吗? SVMLight 提供 C 源代码。

最佳答案

是的,您必须为 64 位重新编译 DLL。您唯一的其他选择是切换到 32 位 JVM,或者让一些 32 位进程代表您加载 DLL 并以某种方式与该进程通信。

关于java - 无法在 AMD 64 位平台上加载 IA 32 位 .dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8113080/

相关文章:

java - 在日语排序中将拉丁字符排序到末尾

c# - C++ 使用 C# DLL。 InvokeHelper 的问题

java - 事务管理器未回滚

java - 原始类型和包装类之间的主要区别是什么?

android - Wi-fi 网络强度 (dBm) 可以为正值吗?

windows - IntelliJ 快捷方式上一个/下一个插入位置窗口

javascript - Node.js spawn/exec/execFile/win-spawn/cross-spawn 全部抛出错误 : spawn ENOENT

windows - Windows 的哪一部分加载 mscoree.dll?

matlab - 在 C DLL 中使用 delphi 数据类型的问题

java - 如何执行 Spring Boot 配置文件并使用 java -jar 命令以及 mvn spring-boot :run command? 传递命令行参数