Консоль Java не работает: невозможно загрузить 32-разрядную библиотеку IA на 64-разрядной платформе AMD - PullRequest
1 голос
/ 07 февраля 2012

Итак, у меня Eclipse 3.7.1, работающий на 64-битной ОС Windows 7.Впервые вчера я пытался написать программу и продолжал получать вышеуказанную ошибку.Я усовершенствовал свою программу до минимального учебника для начинающих и все еще получал ошибку.Моя программа теперь представляет собой простой 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)

Как мне это исправить?Я довольно ржавый, так что чем более подробное пошаговое исправление, тем лучше.Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 07 февраля 2012

Очевидно, что вы получаете ошибку, потому что что-то в вашем коде пытается загрузить собственную библиотеку (DLL), и ваша библиотека предназначена для 32-битной Windows, в то время как вы работаете в 64-битной.

Взгляните на метод DosCommandLine.getCommandLine() в Program.java для подсказок.Если вам абсолютно необходимы функции, предоставляемые этой библиотекой, вы можете загрузить 32-битную JRE и попробовать запустить ее вместе с ней.

1 голос
/ 01 апреля 2016

Проблема заключается в том, что вы используете DLL-файл для 32-битной версии, а ваш JDK и платформа 64-битные. Перейдите по пути «C: \ Users \ scarr», и вы найдете 2 подпапки, i386 и x64. Скопируйте GCMDLN.DLL из x64 или текущего файла .dll, чтобы переопределить его. Я думаю, что проблема будет решена.

1 голос
/ 21 февраля 2014

Переключение на 32-битную JRE при выполнении работает для меня. Ниже приведены инструкции о том, как сделать это в Eclipse:

  • Перейти к Выполнить
  • Перейти к Запустить конфигурации
  • На вкладке JRE вы можете переключиться на 32-битную JRE
0 голосов
/ 20 января 2016

Я столкнулся с той же проблемой с неправильным объявлением метода main или run. В стандартной Java:

public static void main(String [] args) {
}

Используя ConsoleProgram из библиотеки acm, я думаю, что вы должны:

public void run() {
}

Итак run() Вместо main(). Так что ничего общего с 64bit jre .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...