在Matlab中导入java类

时间:2014-07-07 17:25:42

标签: java matlab protocol-buffers

我从proto文件生成了一些Java类。只是为了确保我没有犯错:我首先使用protoc编译proto文件,然后使用javac编译生成的java文件。

我正在尝试导入我在Matlab中生成的类,但我不断收到错误:

Error using javaMethod No class MyClass can be located on the Java class path

我在Matlab中修改了classpath.txt,添加了包含java类的目录和jar文件本身的路径。我查了一下,我相信我用来编译java类的java版本与Matlab使用的相同。

有什么想法吗?我无法理解它...... :(

谢谢!

1 个答案:

答案 0 :(得分:0)

当类文件与嵌入式JVM不兼容时,MATLAB误导性地产生No class MyClass can be located on the Java class path错误。确保您尝试使用的Java类文件不针对较新的JVM。您可以使用version -java检查MATLAB的JVM版本。

R2007b:

>> version -java

ans =

Java 1.6.0 with Sun Microsystems Inc. Java HotSpot(TM) 64-Bit Server VM mixed mode

R2014b-预发行:

>> version -java

ans =

Java 1.7.0_11-b21 with Oracle Corporation Java HotSpot(TM) Client VM mixed mode

如果您的类文件是使用较新的JDK编译的,则需要重新编译它们。您可以使用较旧的兼容JDK;或者您可以使用较新的JDK,但使用javac-source-target选项运行-bootclasspath以定位较旧的MATLAB JVM。