来自matlab的HelloWorld.java

来自matlab的HelloWorld.java,java,matlab,Java,Matlab,尝试从matlab调用此函数 package a.b; public class TestFunction { public TestFunction(){ } public static void HelloWorld() { System.out.println("Hello, World"); } } 我编译了它,得到了一个类文件: [idf@localhost b]$ ls TestFunction.class TestFunction.java [idf@localhos

尝试从matlab调用此函数

package a.b;

public class TestFunction { 
public TestFunction(){
}
public static void HelloWorld() {
 System.out.println("Hello, World");
 }
} 
我编译了它,得到了一个类文件:

[idf@localhost b]$ ls
TestFunction.class  TestFunction.java
[idf@localhost b]$ pwd
/home/idf/Documents/java/a/b
[idf@localhost b]$ 
我在matlab中添加了父目录的路径

javaaddpath('/home/idf/Documents/java/')
如果我尝试导入或调用包,则会出现错误:

>> import a.b
Error using import
Import argument 'a.b' cannot be found or cannot be imported.
如何从
matlab
调用
java
函数
TestFunction.HelloWorld

>> import a.b
Error using import
Import argument 'a.b' cannot be found or cannot be imported.
这告诉Matlab从名为
a
的包中导入名为
b
的类。要导入包
a.b
中的所有类,请执行以下操作:

>> import a.b.*
只导入
TestFunction

>> import a.b.TestFunction

参考资料:

可能的副本会有所帮助。看起来我正在使用的java版本,java build 1.8.0_151-b12,与matlab中的版本不同:java 1.7.0_60-b19与Oracle Corporation java HotSpot(TM)64位服务器VM混合模式谢谢,加上VIN的上述评论,我能够解决这个问题。我必须1)更改MATLAB_JAVA导出以指向新的OracleJava,javaaddpath到编译类所在的实际目录,然后使用您的帖子。