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
總結
以上是生活随笔為你收集整理的64位ie加载java失败_java-无法在AMD 64位平台上加载IA 32位.dll的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有关字符的检验
- 下一篇: 程序如何区分该显示中文字符或英语字符?