2010-08-23 12 views
22

Tôi phải tạo một ứng dụng tự động hóa Outlook và Word và tôi muốn sử dụng Java cho nhiệm vụ đó. (Giải pháp thay thế cho phép duy nhất là VB6, vì vậy ...)Cách chọn cầu nối Java-COM?

Sau một cuộc khảo sát của Google nhanh chóng tôi thấy một số thư viện, nhưng tôi không chắc chắn mà người ta sử dụng:

Tôi không biết cách so sánh các thư viện này và đưa ra quyết định sáng suốt. Dường như COM4J hơi lỗi thời, bộ nhớ rò rỉ JACOB (bị cáo buộc) và jacoZoom là thương mại. Mỗi và mọi người dường như đòi hỏi rất nhiều mã boilerplate để thực hiện một cuộc gọi phương thức đơn giản. (Có thể không thể tránh khỏi thiết kế của COM)

Bên cạnh đó tôi không có ý tưởng cách chọn giữa một trong số chúng. Cái nào là tốt nhất?

+0

JACOB chỉ hỗ trợ giao diện công văn; nó không thể làm ràng buộc vtable. –

Trả lời

8

Chúng tôi sử dụng Jacob trong môi trường sản xuất và hoạt động khá tốt. Tuy nhiên, các dự án dường như không hoạt động.

Phát biểu: Hoạt động có vẻ là một lợi thế cho J-Interop. Chúng tôi đã thử dự án và dường như nó hoạt động khá tốt với các thông điệp ghi nhật ký tốt hơn. Tôi nghĩ chúng ta có thể chọn J-Interop cho các dự án mới.

COM4J dường như đã lỗi thời, bạn nói đúng.

+1

Chúng tôi đã kết thúc bằng cách sử dụng Jacob, và chúng tôi đã không gặp sự cố khi tự động hóa Outlook. –

+0

Chỉ cần để lại điều này ở đây cho hậu thế: Tôi đã kết thúc bằng cách sử dụng JACOB và nó thực sự rò rỉ bộ nhớ như không có gì khác. Tôi đã sử dụng nó để tự động hóa công cụ đo lường (đóng và mở lại kết nối KHÔNG phải là một tùy chọn), và nó sẽ làm hỏng JVM trong vòng vài giờ. – Siebe

3

J-Integra bởi Intrinsyc Software http://j-integra.intrinsyc.com/ là lựa chọn tốt nhất của bạn. Nó ẩn sự phức tạp của việc phải biết một ngôn ngữ lập trình không quen thuộc. Nó không phụ thuộc vào JNI, do đó bạn không cần phải biết JNI. J-Integra cũng được tích cực duy trì và hỗ trợ và Intrinsyc cung cấp một phiên bản 64-bit tinh khiết cho những người muốn chạy trong một môi trường 64-bit tinh khiết.

Intrinsyc cung cấp bản dùng thử miễn phí để bạn có thể thử nghiệm và xem nó có hoạt động hay không trước khi cam kết mua bất kỳ.

Các công ty như HP, IBM, SAP và Oracle sử dụng công cụ này để bạn biết nó sẽ nhanh chóng, ổn định và được hỗ trợ tốt.

5

Là một nhà phát triển dày dạn trong Java/Linux nhưng ngu dốt trong Windows, đây là kinh nghiệm của tôi (tháng 8 năm 2015) ...

Tóm tắt:

  1. Go với com4j ... với sự báo trước rằng:
  2. Bạn có thể cần phải xây dựng (chưa được phát hành) mã mới nhất để có được một số f quan trọng gần đây ixes.

câu chuyện dài:

Lúc đầu, xu hướng cho mã liên quan đến JNI để sụp đổ hiểu sao khiến tôi tìm kiếm một giải pháp phi JNI. J-Interop dường như phù hợp với hóa đơn.

Tuy nhiên, như tôi đã cố gắng để có được j-interop để làm việc, tất cả các điều khoản Windows DCOM và đăng ký crap làm cho nó một tổng PITA. Đó là khác nhau cho các phiên bản khác nhau của Windows, yêu cầu thay đổi phải được thực hiện như quản trị viên, vv Tôi không hiểu bất kỳ crap Windows này và nó làm cho tôi muốn nôn mửa anyway.

Sau đó tôi đã thử com4j và nó hoạt động như một nhà vô địch. Dự án này được thiết kế rất độc đáo. Nó tự động tạo ra các giao diện Java từ các DLL mà bạn đang sử dụng. COM chi tiết quy ước gọi được khai báo bằng cách sử dụng chú thích Java trên các phương thức giao diện, cho phép bạn tinh chỉnh những điều này nếu cần thiết (không cần chỉnh sửa trong trường hợp của tôi).

Có một số nhà phát triển trên github đã phân chia dự án và đóng góp các bản sửa lỗi, đây là dấu hiệu lành mạnh.

Thông báo trước duy nhất là bạn có thể yêu cầu một số bản sửa lỗi gần đây, vào tháng 8 năm 2015, được hợp nhất vào dự án nhưng không có trong bản phát hành mới nhất (bắt đầu từ tháng 3 năm 2014).

Vì vậy, bạn có thể cần tự xây dựng tùy chỉnh, bao gồm xây dựng DLL trong Visual Studio, v.v. Ngay cả khi Windows hater/ignorant, tôi đã có thể thực hiện việc này.

Các vấn đề liên quan