8
votes

Comment faire pour exécuter une API fait pour 32 bits sur une machine 64 bits?

J'écris une application Java qui doit communiquer avec la communication avec une radio Xbee sur une USB-Cable. Pour ce faire, j'utilise l'API Xbee-Java ( http://code.google.com/p/xbee-api/ )

sur mon ancienne machine 32 bits il Tout a fonctionné bien. Mais lorsque j'ai importé le projet sur une machine de 64 bits, il jette immédiatement une exception indiquant: "Impossible de charger IA 32 bits .dll sur une plate-forme AMD 64 bits". Je n'ai aucune idée de la façon dont je peux résoudre ce problème.

Le code d'erreur: xxx

merci, tom


0 commentaires

5 Réponses :


9
votes

Il est impossible de charger une DLL 32 bits dans un processus de 64 bits.

D'après la description, la machine virtuelle Java que vous utilisez est de 64 bits, mais la DLL rxtxSerial.dll est de 32 bits. Pour résoudre, soit:

  • Obtenir 64 bits rxtxSerial.dll , ou
  • Installer et utiliser JVM 32 bits avec le courant rxtxSerial.dll

0 commentaires

6
votes

Un exécutable (et un processus) 64 bits (votre Java VM) ne peut utiliser que 64 bits DLLS.

Mais vous pouvez télécharger, installer et exécuter une version 32 bits de Java. Sauf si vous devez également accéder à des DLL 64 bits ou avoir besoin de plus de 2 à 3 Go de mémoire, le Java VM 32 bits fonctionnera parfaitement sur une machine 64 bits.


0 commentaires

1
votes

Il semble que votre bibliothèque XBee s'appuie sur JNI d'appeler un code natif incorporé dans une DLL.

Vous ne pouvez pas relier cette DLL dans une machine virtuelle Java de 64 bits, et c'est normal.

Alors, vous aurez soit: - Recompiler XBee si vous avez accès au code source. - obtenir une distribution de 64 bits de l'API

Utilisez un VM Java 32bit pour exécuter votre code.


0 commentaires

5
votes

Vous pouvez obtenir rxtx ici les 64 bits dll: http://www.cloudhopper.com/opensource/rxtx/


0 commentaires

1
votes

check https://github.com/neuronrobotics/nrjavaserial

Il inclut plusieurs bibliothèques natales à l'intérieur du pot (Windows, Linux, Mac, 32 et 64) et chargez-les automatiquement pour que vous n'oubliez de dire JVM où les trouver


0 commentaires