【发布时间】:2011-10-22 10:29:20
【问题描述】:
我一直在使用Swig 为用 C++ 编写的库创建 Java 包装器。包装器生成到一个包中,然后jar'ed。这些文件已正确编译并与 java 完美配合,但我无法从 MATLAB 调用它。
我尝试在 MATLAB 的静态 Java 路径文件中添加 jar 的路径,然后调用 jar 文件中的类,但我收到错误 "Undefined variable or class.." 或者如果我尝试使用 javaObject(...) "No class * can be located on Java class path"。
我不确定我做错了什么。
编辑:
为了测试从 MATLAB 调用 c++ 库,我创建了一个简单的“数据读取器”类,其中包含一个将随机生成的vector< vector<double> > 写入文本文件的函数和一个读取它的函数。
生成的swig文件有:com.example.reader包中的SimpleReader.java、DoubleVector.java、exampleJNI.java、example.java、DoubleVector2.java。这些被编译并打包到example.jar中(生成的库dll也打包到jar中)。
从 java 调用它一切正常,因此问题必须特定于 MATLAB。 MATLAB 的代码不多,因为似乎没有任何效果。我做到了
javaclasspath('c:/reader/reader.jar');
obj = com.example.reader.SimpleReader;
此时我得到'Undefined variable "com" or class "com.example.reader.SimpleReader"'
【问题讨论】:
-
请给出一个更详细的例子,说明您正在执行哪些 MATLAB 语句。
标签: java class matlab wrapper swig