Последовательный ввод-вывод Java в Windows x64 с использованием JRE x86

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

Прежде чем вы предложите RXTX, я уже пробовал его как с 32-, так и с 64-битными версиями RXTX DLL. Либо это не удается, потому что 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-разрядная библиотека DLL RXTX не может найти 32-разрядную библиотеку DLL в Windows для использования в последовательной связи.

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


person PNielsen    schedule 13.07.2011    source источник
comment
Извините, оказалось, что в конкретной версии RXTX, которую я использовал, была ошибка. Замена его DLL (которую было утомительно трудно найти) сработала. Я думаю, вы можете использовать Win32 DLL в 64-битной Windows.   -  person PNielsen    schedule 13.07.2011


Ответы (1)


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

person Ernest Friedman-Hill    schedule 13.07.2011
comment
Dependency Walker — это фантастика, да. Не было отсутствующих зависимостей, что в значительной степени подтвердило, что то, что я считал проблемой, на самом деле не было. Спасибо! - person PNielsen; 13.07.2011