Your code itself didn't help but it showed me that I needed to look into the INLINE parts first so I dug into the INLINE help and pretty much got the interface working. I am having another problem though, I need to use a java IMAGE object in the code I'm writing. What I need to do is read in an image file and pass it to the java driver. To do this when I couldn't figure out the actual format of the IMAGE object I wrote a small java class than imported the java IMAGE handling routines and let me get the IMAGE object in return for giving it the filename. I made sure this worked by dropping it into the original java test program given to me by the hardware company and the concept works just like it should. Now I used INLINE Java to use the class I made to read in the image file into a variable but when I try to send the variable to the java class that handles the hardware interface I'm getting the following error.

main::java::lang::IllegalArgumentException=HASH(0x9a82f58)

I'm guessing that something doesn't like the format being returned from the class to read the file but I'm not sure what I can do to force this to work.
Any Ideas?

I was able to drop the external class I made to interface to the awt class in java but I still get an error when it tries to send the image object to the java class to load it. I can actually print the object $image and I get InLine::Java::Object=HASH(0x94da3a8)
Here is the code:

My general advice when using Inline is to keep data passed between Perl and the other language as simple as possible. Passing a Perl object to a Java object as a method parameter is doable, but seems advisable. I tried to make sure I was only passing strings through to Java.

Clearly some Java classes expect more complex data structures to be passed to them - but you write wrappers for those, and do (for example) JSON encoding/decoding at each end.