Two Laptop Bag
The moose likes Java in General and the fly likes COM object in Java Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Java in General
Bookmark "COM object in Java" Watch "COM object in Java" New topic

COM object in Java

Suman Mummaneni
Ranch Hand

Joined: Dec 14, 2004
Posts: 89


If I want to use a COM object in Java how do I do it. I need to access a COM dll in my Java class. I can do this using JNI wrapper classe or should I clreate a new DLL for this again.

Suman Mummaneni
Ulf Dittmer

Joined: Mar 22, 2005
Posts: 42958
This article introduces a library for that purpose which is available from IBM Alphaworks. I've never used it, so can't comment on it.
Stan James
(instanceof Sidekick)
Ranch Hand

Joined: Jan 29, 2003
Posts: 8791
Google on "Java COM bridge" and find many products ranging from free and unsupported to very expensive. Consider a JNI solution where you call from Java to a custom C++ module you write just to talk to a particular COM object. Let us know what you wind up with!

A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
Suman Mummaneni
Ranch Hand

Joined: Dec 14, 2004
Posts: 89


Well for me JNI came to the rescue. I had to write a small C++ class to access some function from another DLL file. So that closed the matter.

Pradeep Kadambar
Ranch Hand

Joined: Oct 18, 2004
Posts: 148
Accessing COM objects has been made simple with Java COM bridges.

For example : JACOB

It is quite efficient. It internally uses JNI for this purpose.

Jayesh Lalwani
Ranch Hand

Joined: Nov 05, 2004
Posts: 502
If you are using COM from JNI, beware of the threading model of the COM object. In-proc COM objects should be fine and simply creating and releasing COM object within your JNI call is fine.

However, if you are creating an out-of-proc COM object in one thread and using it in another, you might run into problems.
I agree. Here's the link:
subject: COM object in Java
It's not a secret anymore!