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

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

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

static {

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

}

我收到以下错误:

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

我可以通过重新编译64位.dll来解决此问题吗? 我将如何去做呢? 我可以使用其他解决方法吗? SVMLight使C源代码可用。

14个解决方案

70 votes

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

Daniel Pryden answered 2020-01-28T03:44:44Z

4 votes

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

aditya answered 2020-01-28T03:45:04Z

2 votes

对第一个问题的简短回答:是的。

更长的答案:也许吧; 这取决于SVMLight的构建过程是否在64位Windows上正常运行。

最后说明:对System.loadLibrary的调用很愚蠢。 请使用完整路径名调用System.load或让它搜索java.library.path。

bmargulies answered 2020-01-28T03:45:33Z

1 votes

在win64bit和JVM 64bit中出现了相同的问题

通过将dll上传到system32解决了

Yaro answered 2020-01-28T03:45:57Z

1 votes

确保将PATH设置为Program Files(x86),而不是Program Files。 那解决了我的问题。

Wojciechu answered 2020-01-28T03:46:17Z

1 votes

从-[http://blog.cedarsoft.com/2010/11/setting-java-library-path-programmatically/]获得了

如果设置了java.library.path,则需要具有以下几行才能起作用。

Field fieldSysPath;

fieldSysPath = ClassLoader.class.getDeclaredField( "sys_paths" );

fieldSysPath.setAccessible( true );

fieldSysPath.set( null, null );

Vincent Tan answered 2020-01-28T03:46:41Z

1 votes

项目属性>>运行>> VM选项

并把这个地址:

-Djava.library.path="C:\opencv\build\java\x64"

eng_hish answered 2020-01-28T03:47:10Z

1 votes

只需去安装下载jdk_x86  并将其安装在Program Files(x86)中,并在项目中设置jre路径。 而已。

JoboFive answered 2020-01-28T03:47:30Z

0 votes

我在以前在Windows x32下运行的Windows x64上运行red5(tomcat)时遇到问题,出现下一个错误:

INFO pool-15-thread-1 com.home.launcher.CommandLauncher - Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\....\lib\Data Samolet.dll: Can't find dependent libraries

INFO pool-15-thread-1 com.home.launcher.CommandLauncher - at java.lang.ClassLoader$NativeLibrary.load(Native Method)

当我安装Java x32版本并设置下一个时解决了问题

“环境变量”

“家庭用户变量”

JAVA_HOME => C:\ Program文件(x86)\ Java \ jdk.1.6.0_45

“系统变量”

路径[开头] => C:\ Program Files \ Java \ jdk.1.8.0_60;。

Denys Zotov answered 2020-01-28T03:48:16Z

0 votes

我有与此相关的问题,正在阅读

"Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\opencv\build\java\x86\opencv_java2413.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform "and it took me an entire night to figure out.

我通过将C:\opencv\build\java\x64中的dll复制到system32文件夹中解决了我的问题。 我希望这会对某人有所帮助。

Oti answered 2020-01-28T03:48:40Z

0 votes

这是从命令行/命令提示符进行编译的人的答案。 不需要更改您的1.8.0_111环境变量; 它只是使您可以将32位JVM与32位DLL一起用于程序。

对于编译,使用哪个1.8.0_111无关紧要-32位或64位。

>javac MyProgramWith32BitNativeLib.java

对于程序的实际执行,重要的是指定1.8.0_111的32位版本的路径

我将发布一个1.8.0_111的代码示例,因为这似乎是OP使用的操作系统。

视窗

该代码很可能是这样的:

>"C:\Program Files (x86)\Java\jre#.#.#_###\bin\java.exe" MyProgramWith32BitNativeLib

区别在于1.8.0_111之后的数字。要查找应使用的数字,请输入:

>dir "C:\Program Files (x86)\Java\"

在我的机器上,过程如下

C:\Users\me\MyProject>dir "C:\Program Files (x86)\Java"

Volume in drive C is Windows

Volume Serial Number is 0000-9999

Directory of C:\Program Files (x86)\Java

11/03/2016 09:07 PM

11/03/2016 09:07 PM

11/03/2016 09:07 PM

0 File(s) 0 bytes

3 Dir(s) 107,641,901,056 bytes free

C:\Users\me\MyProject>

所以我知道我的电话号码是1.8.0_111,我的命令是

C:\Users\me\MyProject>"C:\Program Files (x86)\Java\jre1.8.0_111\bin\java.exe" MyProgramWith32BitNativeLib

bballdave025 answered 2020-01-28T03:49:36Z

0 votes

不用担心,您应该将本机库中的.dll从x64更改为x86。

例如:-您可能已经选择了此(C:\ opencv \ build \ java \ x64)。

而是为本机库(C:\ opencv \ build \ java \ x86)选择此选项。

Akash answered 2020-01-28T03:50:04Z

0 votes

对于本机库位置,请在X86上使用X64。 至少我有这个固定的问题。

이재찬 answered 2020-01-28T03:50:24Z

0 votes

我的Windows笔记本电脑同时具有32位和64位客户端,我突然遇到了所有问题,然后重新排列了路径变量,如下所示

之前:

C:\app\oracle64\product\12.1.0\client_1\bin;

C:\app\oracle32\product\12.1.0\client_1\bin;

后:

C:\app\oracle32\product\12.1.0\client_1\bin;

C:\app\oracle64\product\12.1.0\client_1\bin;

开始工作...希望对大家有帮助。

Nagesh Kothakota answered 2020-01-28T03:50:57Z

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值