Как разработчик, опытный в Java / Linux, но не знающий Windows, вот мой опыт (август 2015) ...
Резюме:
- Перейти с com4j ... с оговоркой, что:
- Возможно, вам потребуется собрать последний (неизданный) код, чтобы получить некоторые важные недавние исправления.
Более длинная история:
Поначалу склонность к коду, в котором JNI неожиданно рушился, заставила меня искать решение без JNI. J-Interop , казалось, отвечал всем требованиям.
Однако, когда я попытался заставить работать j-interop, все разрешения Windows DCOM и всякое дерьмо в реестре сделали его полноценным PITA. Это отличается для разных версий Windows, необходимые изменения должны быть сделаны от имени администратора и т. Д. Я не понимаю ничего из этого дерьма Windows, и это все равно заставляет меня рвать.
Затем я попробовал com4j, и он работал как чемпион. Этот проект очень красиво оформлен. Он автоматически генерирует интерфейсы Java из используемых вами библиотек DLL. Детали соглашения о вызовах COM объявляются с использованием аннотаций Java на интерфейсных методах, что позволяет настраивать их при необходимости (в моем случае никаких настроек не требовалось).
На github есть несколько разработчиков, которые разработали проект и внесли исправления, что является хорошим признаком.
Единственное предостережение в том, что вам могут потребоваться некоторые из последних исправлений, которые по состоянию на август 2015 года включены в проект, но не содержатся в последнем выпуске (выпущенном в марте 2014 года).
Так что, возможно, вам придется самостоятельно создавать сборку, которая включает в себя сборку DLL в Visual Studio и т. Д. Даже будучи ненавистником / невежественным Windows, я смог это сделать.