61 votes

Impossible de charger IA .dll 32 bits sur une plate-forme AMD 64 bits

Je suis en train d'utiliser SVMLight de Java, à l'aide de la JNI wrapper sur cette page:

  static {
    System.loadLibrary("lib/JNI_SVM-light-6.01/lib/svmlight");
  }

J'obtiens l'erreur suivante:

... lib\JNI_SVM-light-6.01\lib\svmlight.dll: ne Peut pas charger IA 32 bits .dll sur un AMD 64 bits plate-forme

Puis-je résoudre ce problème en recompilant le .dll 64 bits? Comment pourrais-je aller sur le faire? Est-il une autre solution que je peux utiliser? SVMLight rend le code source C disponible.

87voto

Daniel Pryden Points 22167

Oui, vous devrez recompiler la DLL pour 64 bits. Votre seule autre option consiste à basculer vers une machine virtuelle Java 32 bits, ou autrement obtenir un processus 32 bits pour charger la DLL en votre nom et communiquer avec ce processus d'une manière ou d'une autre.

5voto

aditya Points 41

J'ai eu le même problème avec une application Java utilisant la DLL tibco initialement conçue pour fonctionner sur Win XP. Pour le faire fonctionner sur Windows 7, j'ai fait le point d'application à JRE 32 bits. En attendant de voir s'il y a une autre solution.

2voto

bmargulies Points 49855

Réponse courte à la première question: oui.

Réponse plus longue: peut-être; cela dépend si le processus de construction de SVMLight se comporte sur des fenêtres 64 bits.

Remarque finale: cet appel à System.loadLibrary est idiot. Appelez System.load avec un chemin d'accès complet ou laissez-le rechercher java.library.path.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X