Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java控制台不工作:Can';t在AMD 64位平台上加载IA 32位.dll_Java_Dll_Compiler Errors_Runtime Error - Fatal编程技术网

Java控制台不工作:Can';t在AMD 64位平台上加载IA 32位.dll

Java控制台不工作:Can';t在AMD 64位平台上加载IA 32位.dll,java,dll,compiler-errors,runtime-error,Java,Dll,Compiler Errors,Runtime Error,所以我有Eclipse3.7.1,运行在64位Windows7操作系统上。昨天,我第一次尝试编写一个程序,但一直出现上述错误。我将我的程序细化为一个最低限度的初学者教程,但仍然会遇到错误。我的程序现在是一个简单的readInt()并将它们添加到一起 守则: import acm.program.*; public class DBEditor extends ConsoleProgram { public void main() { System.out.println("This

所以我有Eclipse3.7.1,运行在64位Windows7操作系统上。昨天,我第一次尝试编写一个程序,但一直出现上述错误。我将我的程序细化为一个最低限度的初学者教程,但仍然会遇到错误。我的程序现在是一个简单的readInt()并将它们添加到一起

守则:

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并尝试使用它运行。

很明显,您遇到的错误是因为代码中的某些内容试图加载本机库(DLL),而您拥有的库在64位运行时是用于32位Windows的


查看
Program.java
中的
DosCommandLine.getCommandLine()
方法以获取线索。如果您确实需要该库提供的功能,那么您可以下载32位JRE并尝试使用它运行。

在为我执行works时切换到32位JRE。以下是如何在Eclipse中准确执行此操作的步骤:

  • 转到运行配置
  • 在JRE选项卡下,您可以切换到32位JRE

为我执行works时切换到32位JRE。以下是如何在Eclipse中准确执行此操作的步骤:

  • 转到运行配置
  • 在JRE选项卡下,您可以切换到32位JRE

我遇到了相同的问题,但main或run方法的声明错误。 在标准java中:

public static void main(String [] args) {
}
使用acm库中的ConsoleProgram,我认为您应该:

public void run() {
}

所以
run()
而不是
main()
。因此,与64位jre

无关,我在相同的问题中使用了错误的main或run方法声明。 在标准java中:

public static void main(String [] args) {
}
使用acm库中的ConsoleProgram,我认为您应该:

public void run() {
}

所以
run()
而不是
main()
。因此,与64位jre

无关,问题在于您使用的是32位版本的.dll文件,而您的JDK和平台是64位的。 转到路径“C:\Users\scarr”,您将找到两个子文件夹:i386和x64。从x64或当前的.DLL文件复制GCMDLN.DLL以覆盖它。
我认为这个问题会得到解决。

这个问题是因为您使用的是32位版本的.dll文件,而您的JDK和平台是64位的。 转到路径“C:\Users\scarr”,您将找到两个子文件夹:i386和x64。从x64或当前的.DLL文件复制GCMDLN.DLL以覆盖它。
我想问题会解决的。

你能展示你的DOSCommandLine类吗?
acm.program.DOSCommandLine
是你的类还是库?它来自库。acm jar包含该类。它不是我创建的类。您能显示您的DOSCommandLine类吗?
acm.program.DOSCommandLine
是您的类还是库?它来自库。acm jar包含该类。DosCommandLine方法是与我的应用程序关联的ACMJAR文件的一部分。这不是我创造的。我所创建的只是我的原始帖子中包含的一个方法…@Utopia025好的,但是,
doscondline
或jar中的某个东西正在尝试加载一个32位库。doscondline方法是我的应用程序关联的acm jar文件的一部分。这不是我创造的。我所创建的只是我的原始帖子中包含的一个方法…@Utopia025好的,但是,
doscondline
或jar中的某个东西正在尝试加载一个32位的库。