Подтвердить что ты не робот

Как выбрать мост Java-COM?

Мне нужно создать приложение, которое автоматизирует Outlook и Word, и я хочу использовать Java для этой задачи. (Единственной допустимой альтернативой может быть VB6, поэтому...)

После быстрого опроса Google я нашел несколько библиотек, но я не уверен, какой из них использовать:

Я не знаю, как сравнить эти библиотеки и принять обоснованное решение. Кажется, что COM4J немного устарел, JACOB утечки памяти (якобы) и jacoZoom является коммерческим. Кажется, что каждый из них требует большого количества кода шаблона для выполнения простого вызова метода. (Что может быть неизбежным при проектировании COM)

Кроме того, я понятия не имею, как выбрать один из них. Какой из них лучше?

4b9b3361

Ответ 1

Мы используем Jacob в производственной среде, и это работает очень хорошо. Тем не менее проекты, похоже, не очень активны.

Говоря о том, что: активность, похоже, является преимуществом для J-Interop. Мы также пробовали проект, и, похоже, он неплохо справился с еще лучшими сообщениями о регистрации. Я думаю, мы могли бы выбрать J-Interop для новых проектов.

COM4J, похоже, устарел, вы правы.

Ответ 2

Как разработчик, приукрашенный в 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, я смог это сделать.

Ответ 3

COM4J по-прежнему кажется активным - он перенесен в Github и имеет новую домашнюю страницу: http://com4j.kohsuke.org/tutorial.html

Ответ 4

J-Integra от Intrinsyc Software http://j-integra.intrinsyc.com/ - ваш лучший вариант. Он скрывает сложность знания незнакомого языка программирования. Это не зависит от JNI, поэтому вам не нужно знать JNI. J-Integra также активно поддерживается и поддерживается, а Intrinsyc предлагает чистую 64-разрядную версию для тех, кто хочет работать в чистой 64-разрядной среде.

Intrinsyc предлагает бесплатные испытания, чтобы вы могли проверить его и посмотреть, работает ли он, прежде чем совершать какие-либо покупки.

Такие компании, как HP, IBM, SAP и Oracle, используют его, чтобы вы знали, что он будет быстрым, стабильным и хорошо поддерживаемым.