首先我要提前感谢大家阅读这么长的帖子。我真的很感谢你的帮助。
问题是我一直在研究如何为我正在为大学工作的项目“连接”Matlab 和 Java。我认为最合适的选择是使用 Matlab Builder JA,但我遇到了很多麻烦。
我逐步按照教程中描述的说明进行操作(下面的视频链接),但一遍又一遍地出现编译错误,我真的不知道如何修复它们。本教程是关于使用 MATLAB(“com.demo”)创建一个 Java 包(demo.jar),其中包含一个类(MLTestClass),该类具有一个makeSqr(n)
返回 n × n 方阵的函数。然后我转到 Eclipse,将 javabuilder.jar 和 demo.jar 这两个库添加到项目中,然后创建以下类:
public class Driver {
public static void main (String[] args) {
MLTestClass x = null;
Object result [] = null;
try {
x = new MLTestClass ();
result = x.makeSqr (1, 5);
System.out.println (result [0]);
} catch (MWException e) {
e.printStackTrace();
}
}
}
当然我导入 com.demo.* 和 com.mathworks.toolbox.javabuilder.*。
以下是控制台给我的错误:
线程“主”java.lang.ExceptionInInitializerError 中的异常 在 com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.getProxyLibraryDir(MCRConfiguration.java:163) 在 com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$MCRRoot.get(MCRConfiguration.java:77) 在 com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$MCRRoot.<clinit>(MCRConfiguration.java:87) 在 com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.getMCRRoot(MCRConfiguration.java:92) 在 com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ModuleDir.<clinit>(MCRConfiguration.java:66) 在 com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.getModuleDir(MCRConfiguration.java:71) 在 com.mathworks.toolbox.javabuilder.internal.MWMCR.<clinit>(MWMCR.java:1573) 在 com.demo.DemoMCRFactory.(DemoMCRFactory.java:122) 在 com.demo.MLTestClass.(MLTestClass.java:63) 在 Driver.main(Driver.java:12) 引起:java.lang.NullPointerException 在 com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ProxyLibraryDir.get(MCRConfiguration.java:143) 在 com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ProxyLibraryDir.<clinit>(MCRConfiguration.java:158) ... 10 更多
以防万一,链接教程(这是视频): http: //www.mathworks.nl/products/javabuilder/description2.html
任何人都有任何想法可能是什么问题?它说了一些关于 NullPointerException 的内容,但我不知道如何解决它,因为构造函数是由用 MATLAB 创建的类提供的。我安装 MCR 没有任何问题,顺便说一下,我有 MacOS,我希望这不是问题的根源:)。
再次,很抱歉,很长的帖子,感谢您的时间。
本托。