2
votes

I'm trying to deploy an application from Matlab to JAVA. I use Matlab Builder JA and the Image Processing Toolbox. I create my jar file from Matlab R2012a with the deploytool on MacOSX.

When I run my JAVA program using this jar on my mac, it's OK, but when I try to run it on a Linux or Windows system, I get the error:

Undefined function or variable 'ipplmex'. Error in ==> ippl at 48 Error in ==> imrotate>useIPP at 205

Deactivating the use of IPPL with iptsetpref('UseIPPL', false) doesn't fix my problem.

I also have done the exact same work on a Linux environment with Matlab R2011a, and it works on Linux but not on a MacOSX machine with the same error.

If anyone has an idea concerning this IPPL thing when changing OS, that would be great.

Thanks !

1
I wonder if the version of IPPL deployed in each environment is different?Brendan Hannemann

1 Answers

0
votes

Java components created with Builder JA are only cross-platform if they don't depend on platform-specific libraries, such as MEX-files you create, or the IPPL libraries supplied with Image Processing Toolbox.

If you want your Java component to make use of IPPL, I think you'll need to create the Java component once on Mac, once on Linux, once on Windows, and use the version created on the appropriate platform.

ipplmex is a (platform-specific) MEX file that is called by ippl, which is a utility function that checks whether IPPL is available. I can't check this at the moment, but I think it makes that availability check whether or not you've specified that you want to actually use IPPL, via the iptsetpref command. Therefore whether or not you specify that IPPL should be used, there's still a platform-specific MEX-file being called.

Again, I can't check this at the moment, but if you're comfortable with your component not using IPPL, you might try to modify the ippl command to just return zero (indicating that IPPL is not available) without attempting to execute ipplmex. (Make sure to take a copy of your existing ippl.m file before you try any modifications).