Console Java ne fonctionne pas: impossible de charger IA 32 bits .dll sur un AMD 64 bits plate-forme
J'ai donc Eclipse 3.7.1, en cours d'exécution sur une version 64 bits de Windows 7 OS. Pour la première fois dans un tout hier, j'ai tenté d'écrire un programme et continué à obtenir l'erreur ci-dessus. J'ai peaufiné mon programme vers le bas à un minimum les débutants et le tutoriel a été toujours obtenir l'erreur. Mon programme est maintenant un simple readInt()s et les ajouter ensemble.
Le code:
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);
}
}
l'erreur lorsque vous essayez d'exécuter en tant qu'Application 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)
Comment puis-je résoudre ce problème? Je suis assez rouillé, de sorte que le plus détaillé, étape par étape, les corriger, les améliorer. Merci à l'avance.
- Pouvez-vous montrer votre DOSCommandLine classe?
- comment dois-je faire?
acm.program.DOSCommandLine
est votre classe ou d'une lib?- son à partir d'une bibliothèque. L'acm jar comprend que classe. Ce n'est pas une classe que j'ai créé.
Vous devez vous connecter pour publier un commentaire.
Clairement l'erreur que vous obtenez est parce que quelque chose dans votre code essaie de charger une bibliothèque native (DLL) et de la bibliothèque que vous avez est pour la version 32 bits de Windows alors que vous êtes en 64 bits.
Prendre un coup d'oeil à la
DosCommandLine.getCommandLine()
méthode dansProgram.java
pour trouver des indices. Si vous avez absolument besoin de fonctionnalités fournies par la bibliothèque, alors vous pouvez télécharger la version 32 bits JRE et essayer de le faire fonctionner avec elle.DosCommandLine
ou quelque chose dans le pot essayez de charger une version 32 bits de la bibliothèque.De commutation pour le 32 bits JRE lors de l'exécution de travaux pour moi. Ci-dessous sont les étapes sur la façon de faire exactement dans Eclipse:
La question est parce que vous êtes en utilisant un .dll fichier pour une version 32 bits, alors que votre JDK et de plate-forme 64 bits.
Passez votre chemin "C:\Users\scarr" et vous trouverez 2 sous-dossiers, i386, et x64. Copie de la GCMDLN.DLL à partir de la version x64 ou le courant .dll fichier pour le remplacer.
Je pense que le problème sera résolu.
J'ai couru dans le même problème avec une fausse déclaration de la principale ou la méthode run.
En java standard:
À l'aide de ConsoleProgram de l'acm de la bibliothèque, je pense que vous devriez être:
Donc
run()
au Lieu demain()
. Rien à voir donc avec le 64 bits jre.