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. p>
Le code d'erreur: p> merci, tom p> p>
5 Réponses :
Il est impossible de charger une DLL 32 bits dans un processus de 64 bits. P>
D'après la description, la machine virtuelle Java que vous utilisez est de 64 bits, mais la DLL rxtxSerial.dll code> est de 32 bits. Pour résoudre, soit: p>
rxtxSerial.dll code>, ou li>
rxtxSerial.dll code> li>
Ul>
Un exécutable (et un processus) 64 bits (votre Java VM) ne peut utiliser que 64 bits DLLS. P>
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. P>
Il semble que votre bibliothèque XBee s'appuie sur JNI d'appeler un code natif incorporé dans une DLL. P>
Vous ne pouvez pas relier cette DLL dans une machine virtuelle Java de 64 bits, et c'est normal. P>
Alors, vous aurez soit: - Recompiler XBee si vous avez accès au code source. - obtenir une distribution de 64 bits de l'API P>
Utilisez un VM Java 32bit pour exécuter votre code. P>
Vous pouvez obtenir rxtx ici les 64 bits dll: http://www.cloudhopper.com/opensource/rxtx/ p>
check https://github.com/neuronrobotics/nrjavaserial p>
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 p>