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

Nic*_*ner 50 java windows dll java-native-interface

我正在尝试使用Java中的SVMLight,在此页面上使用JNI包装器:

  static {
    System.loadLibrary("lib/JNI_SVM-light-6.01/lib/svmlight");
  }
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

... lib\JNI_SVM-light-6.01\lib\svmlight.dll:无法在AMD 64位平台上加载IA 32位.dll

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

Dan*_*den 70

是的,您将不得不重新编译64位的DLL.您唯一的另一个选择是切换到32位JVM,或以其他方式获得一些32位进程来代表您加载DLL并以某种方式与该进程通信.

  • 下载并安装32位jvm. (7认同)
  • @Rosarch:Yup,64位机器可以运行32位可执行文件.这将是获得32位DLL工作的最简单方法. (2认同)
  • “是的,您必须重新编译 64 位 DLL。” 如何? (2认同)

小智 5

我对最初打算在 Win XP 上运行的使用 tibco dll 的 Java 应用程序遇到了同样的问题。为了让它在 Windows 7 上运行,我将应用程序指向 32 位 JRE。等待看看是否有其他解决方案。

  • 您好,您能详细说明一下如何让您的应用程序指向 32 位 JRE 吗?这是您在 IDE 中执行的操作还是以编程方式执行的操作? (3认同)