E / S série Java sous Windows x64 avec JRE x86

J’ai une application Java s’exécutant sur Windows 7 64 bits, mais s’exécutant sur une version 32 bits de JRE. J’ai besoin de cette application pour communiquer avec un port série et apparemment j’ai besoin d’un peu d’aide. 🙂

Avant de suggérer RXTX, je l’ai déjà essayé, à la fois avec les versions 32 et 64 bits des DLL RXTX. Soit il échoue car JRE 32 bits ne peut pas charger une DLL 64 bits, ou il échoue car la DLL 32 bits donne une erreur java.lang.UnsatisfiedLinkError:

java.lang.UnsatisfiedLinkError: \cache\bundle1030\version0.0\bundle.jar-lib\0\lib\win32\rxtxSerial.dll: Can't find dependent libraries 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.loadLibrary0(Unknown Source) at java.lang.System.loadLibrary(Unknown Source) at gnu.io.CommPortIdentifier.(CommPortIdentifier.java:83) 

ce que je suppose est que la DLL RXTX 32 bits ne peut pas trouver une DLL 32 bits dans Windows à utiliser pour la communication série.

Des indices pour savoir comment procéder? Une autre bibliothèque? Comment combler le fossé entre JRE 32 bits et Windows DLL 64 bits?

Il existe un outil gratuit incroyable appelé Dependency Walker . Il vous indique précisément quelles autres DLL une DLL donnée chargera en fonction du PATH actuel, et celles qui ne peuvent pas être trouvées ou ne se chargeront pas correctement. Il a sauvé mon bacon plusieurs fois, et il devrait être l’outil parfait pour déboguer votre problème ici. Une fois que vous savez ce qui vous manque, vous pourrez peut-être trouver des versions 32 bits à installer – ou simplement modifier votre chemin pour les rendre disponibles.