class - Calling Java from MATLAB -


i have been using swig create java wrapper a library written in c++. wrappers generated package , jar'ed. files compiled correctly , work java can't call matlab.

i tried adding path jar in static java path file in matlab , calling classes in jar file error "undefined variable or class.." or if try using javaobject(...) "no class * can located on java class path".

i'm not sure doing wrong.


edit:

to test calling c++ library matlab, created simple "data reader" class contains function writes randomly generated vector< vector<double> > text file , and function reads it.

the swig files generated are: simplereader.java, doublevector.java, examplejni.java, example.java, doublevector2.java in package com.example.reader. these compiled , packed example.jar (the library dll generated packed jar).

it works fine calling java problem must specific matlab. there not code matlab nothing seems work. far as

javaclasspath('c:/reader/reader.jar'); obj = com.example.reader.simplereader; 

at point 'undefined variable "com" or class "com.example.reader.simplereader"'

in general you're supposed able this:

javaclasspath('/path/to/myjar.jar') myobj = com.example.mypackage.myobject; myobj.somemethod(123); 

i've been using matlab quite while , have had no trouble. perhaps post exact matlab code using?


i far

javaclasspath('c:/reader/reader.jar');  obj = com.example.reader.simplereader;  

at point 'undefined variable "com" or class "com.example.reader.simplereader"'

well, starters, mentioned jarfile called example.jar, matlab code references reader.jar -- sure jar you're referencing in javaclasspath() exists? have tried looking @ contents of it? (e.g. 7zip or program can read .zip-format files, since .jar files .zip-format files additional specifications)


hmmm...

  • which version of matlab using?
  • are classes public?
  • what when try typing following:

    javap -classpath c:/reader/example.jar com.example.reader.simplereader 

you you're using version 7.0.4 -- problem. earlier versions of matlab use older version of java jre:

matlab supported on jvm ship matlab. example:

jvm 1.3.1 matlab 6.5.1 (r13sp1)

jvm 1.4.2 matlab 7.0.1 (r14sp1)

matlab 7.0.4 (r14sp2) , later versions till matlab 7.4 (r2007a) use jvm 1.5 , matlab 7.5 (r2007b) , later use jvm 1.6. there components may not work under different version of jvm.

you have 3 choices @ point.

  • (if possible) -- use jar files compatible java 5. in case, since you're making own library, need use the -target 1.5 option. (target="1.5" if you're using ant <javac> task) isn't huge deal, since 1.6 kind of incremental improvement 1.5 -- although if you're using of few java 6 classes arraydeque, or external libraries depend on 1.6, you're out of luck.

  • use jre 1.6 matlab 7.4 changing jvm. not sure idea.

  • upgrade matlab version runs on java 6 (r2007b or later).

remember issue when go upgrade java development environment java 7 or java 8.


Comments

Popular posts from this blog

javascript - Bootstrap Popover: iOS Safari strange behaviour -

Magento/PHP - Get phones on all members in a customer group -

session - Logging Out Using PHP -