Последовательный ввод / вывод Java в Windows x64 с использованием JRE x86 - PullRequest
3 голосов
/ 13 июля 2011

У меня есть приложение Java, работающее на 64-битной Windows 7, но работающее на 32-битной версии JRE.Мне нужно это приложение для связи с последовательным COM-портом, и, видимо, мне нужна небольшая помощь.:)

Прежде чем вы предложите RXTX, я уже пробовал его, как с 32-, так и с 64-битными версиями библиотек RXTX.Либо происходит сбой, потому что 32-битная JRE не может загрузить 64-битную DLL, либо происходит сбой, потому что 32-битная DLL выдает ошибку java.lang.UnsatisfiedLinkError:

java.lang.UnsatisfiedLinkError: <Path>\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.<clinit>(CommPortIdentifier.java:83)

, которую я предполагаю, потому что32-разрядная библиотека RXTX не может найти 32-разрядную библиотеку в Windows, чтобы использовать ее для последовательной связи.

Есть какие-нибудь подсказки, как действовать?Еще одна библиотека?Как преодолеть разрыв между 32-битной JRE и 64-битной Windows DLL?

1 Ответ

1 голос
/ 13 июля 2011

Существует замечательный бесплатный инструмент под названием Dependency Walker . Он точно сообщает, какие другие библиотеки DLL будут загружены данной библиотекой в ​​зависимости от текущей переменной PATH, а какие не найдены или будут загружены неправильно. Это спасло мой бекон много раз, и это должно быть идеальным инструментом для устранения вашей проблемы здесь. Как только вы узнаете, чего не хватает, вы сможете найти 32-битные версии для установки или просто изменить свой путь, чтобы сделать их доступными.

...