在Matlab中导入java类

在Matlab中导入java类,java,matlab,protocol-buffers,Java,Matlab,Protocol Buffers,我已经从一个原型文件生成了一些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文件本身的路径。我检查过,我相信我用来编译jav

我已经从一个原型文件生成了一些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使用的版本相同

有什么想法吗?我无法理解这一点(


谢谢!

当类文件与嵌入式JVM不兼容时,MATLAB误导性地产生
Java类路径上找不到类MyClass
错误。请确保您尝试使用的Java类文件不针对较新的JVM。您可以使用
版本-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,但使用
-source
-target
-bootclasspath
选项运行
javac
,以较旧的MATLAB JVM为目标。

非常感谢您的回答。Tha这是在Matlab上运行的java版本:
java 1.6.0_65-b14-462-11M4609与Apple Inc.java HotSpot(TM)64位服务器虚拟机混合模式
,这与我编译java文件时使用的相同(
java-version
from terminal给出了相同的结果)显然是同一个版本。这是个好消息。通过运行
javac-version
(而不是java-version)进行双重检查,以防默认的JRE和JDK不匹配。我假设您已经重新启动了MATLAB,当您在MATLAB控制台上键入
javaclasspath
时,会列出包含Java类的目录或jarfile,对吗?是的,它列在那里,我在做任何更改后重新启动了MATLAB。