Есть ли библиотека Java для доступа к собственному Windows API? - PullRequest
18 голосов
/ 03 марта 2009

Существует ли библиотека Java для доступа к собственному Windows API? Либо с COM или JNI.

Ответы [ 6 ]

20 голосов
/ 03 марта 2009

Вы могли бы попробовать эти два, я видел успех с обоими.

http://jawinproject.sourceforge.net

Проект интеграции Java / Win32 (Jawin) - бесплатный, открытый исходный код архитектура для взаимодействия между Java и выставленными компонентами через компонентный объект Microsoft Модель (COM) или через Win32 Dynamic Библиотеки ссылок (DLL).

https://github.com/twall/jna/

JNA обеспечивает легкий доступ к программам Java в собственные общие библиотеки (библиотеки DLL на Винда) ничего не написав но Java-код - нет JNI или нативный код требуется. Эта функциональность сравнимо с платформой / Invoke Windows и типы Python. Доступ динамический во время выполнения без генерации кода.

JNA позволяет звонить прямо в нативные функции, использующие естественную Java вызов метода. Вызов Java выглядит так же, как это происходит в нативном коде. Наиболее звонки не требуют специальной обработки или конфигурации; нет шаблона или требуется сгенерированный код.

Также читайте здесь:

http://en.wikipedia.org/wiki/Java_Native_Interface

Собственный интерфейс Java (JNI) является среда программирования, которая позволяет Java код работает на виртуальной машине Java (JVM) позвонить и будет вызван 1 нативные приложения (программы специфичные к оборудованию и операционной системе платформа) и библиотеки, написанные на другие языки, такие как C, C ++ и сборка.

http://en.wikipedia.org/wiki/Java_Native_Access

Собственный доступ к Java обеспечивает Java программы легкий доступ к родным общим библиотеки без использования Java Родной интерфейс. Дизайн JNA направлен на обеспечить естественный доступ естественным образом с минимумом усилий. нет шаблон или сгенерированный код клея требуется.

5 голосов
/ 03 марта 2009

JNA довольно мило. Я просто новичок, и мне было очень легко. Работает не только для Win32 API, но и для почти любой другой DLL.

2 голосов
/ 05 марта 2009

Джейкоб неплохо подходит для COM (но это настоящий COM - как вы пишете на C ++ - если вы знакомы с настоящим программированием COM, то Джейкоб совсем несложен в использовать)

1 голос
/ 29 марта 2011

Выезд Вафля

1 голос
/ 01 января 2011

Еще одна опция - WinRun4J . Он имеет собственный слой привязки, который стремится быть совместимым с pinvoke.net (собственный формат привязки, используемый в точечной сети). См. examples для получения дополнительной информации. Это немного ранних дней, поэтому YMMV.

(полное раскрытие: я работаю над проектом).

Еще одна опция - JFFI - она ​​используется в jruby и jython для взаимодействия с нативными библиотеками.

1 голос
/ 05 марта 2009

JNIWrapper или ConfyJ из TeamDev.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...