[英]Java Console not working: Can't load IA 32-bit .dll on a AMD 64-bit platform
因此,我有了運行在64位Windows 7操作系統上的Eclipse 3.7.1。 昨天一段時間以來,我第一次嘗試編寫程序,並不斷出現上述錯誤。 我將程序精簡到最低限度的初學者教程,但仍然出現錯誤。 我的程序現在是一個簡單的readInt()s並將它們添加在一起。
編碼:
import acm.program.*;
public class DBEditor extends ConsoleProgram {
public void main() {
System.out.println("This adds two integers");
int a = readInt("First Num: ");
int b = readInt("Second Num: ");
int total = a+ b;
System.out.println("The sum of the numbers is: " + total);
}
}
嘗試作為Java應用程序運行時的錯誤:
Exception in thread "main" java.lang.UnsatisfiedLinkError:
C:\Users\scarr\GCMDLN.DLL: Can't load IA 32-bit .dll on a AMD 64-bit platform
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.load0(Unknown Source)
at java.lang.System.load(Unknown Source)
at acm.program.DOSCommandLine.getCommandLine(Program.java)
at acm.program.Program.getCommandLine(Program.java)
at acm.program.Program.main(Program.java)
我該如何解決? 我很生疏,所以逐步修復越詳細越好。 提前致謝。
顯然,您得到的錯誤是因為代碼中的某些內容試圖加載本機庫(DLL),而您在64位運行時所擁有的庫適用於32位Windows。
看一下Program.java
中的DosCommandLine.getCommandLine()
方法以獲取線索。 如果您絕對需要該庫提供的功能,則可以下載32位JRE並嘗試與其一起運行。
執行時切換到32位JRE對我有效。 以下是有關如何在Eclipse中精確執行此操作的步驟:
問題是因為您使用的是32位版本的.dll文件,而JDK和平台是64位的。 轉到路徑“ C:\\ Users \\ scarr”,您將找到2個子文件夾i386和x64。 從x64或當前的.dll文件復制GCMDLN.DLL,以覆蓋它。 我認為這個問題將會解決。
我遇到了同樣的問題,因為main或run方法的聲明錯誤。 在標准Java中:
public static void main(String [] args) {
}
我認為從acm庫使用ConsoleProgram應該是:
public void run() {
}
所以用run()
代替main()
。 因此與64bit jre無關。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.