首先我想先感谢大家阅读这么长的帖子。我非常感谢你的帮助。使用Matlab生成器的问题JA
事情是,我一直在做一些研究,如何“连接”Matlab和Java为我正在为大学工作的项目。我认为最合适的选择是使用Matlab Builder JA,但是我遇到了很多麻烦。
我跟着一步一步的教程(视频下面的链接)的说明进行操作,但一遍又一遍地出现编译错误,我真的不知道该如何解决这些问题。本教程是关于用MATLAB(“com.demo”)创建一个Java包(demo.jar),其中包含一个具有函数makeSqr(n)
的类(MLTestClass),该函数返回一个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。*。
下面是错误控制台给我:
Exception in thread "main" java.lang.ExceptionInInitializerError at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.getProxyLibraryDir(MCRConfiguration.java:163) at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$MCRRoot.get(MCRConfiguration.java:77) at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$MCRRoot.<clinit>(MCRConfiguration.java:87) at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.getMCRRoot(MCRConfiguration.java:92) at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ModuleDir.<clinit>(MCRConfiguration.java:66) at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.getModuleDir(MCRConfiguration.java:71) at com.mathworks.toolbox.javabuilder.internal.MWMCR.<clinit>(MWMCR.java:1573) at com.demo.DemoMCRFactory.(DemoMCRFactory.java:122) at com.demo.MLTestClass.(MLTestClass.java:63) at Driver.main(Driver.java:12) Caused by: java.lang.NullPointerException at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ProxyLibraryDir.get(MCRConfiguration.java:143) at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ProxyLibraryDir.<clinit>(MCRConfiguration.java:158) ... 10 more
以防万一,链接教程(它的视频):http://www.mathworks.nl/products/javabuilder/description2.html
任何人有任何想法,问题可能是什么?它说NullPointerException异常,但我不知道如何解决它,因为构造函数是由MATLAB创建的类提供的。我没有安装MCR的任何问题,顺便说一句,我有MacOS,我希望这不是问题的根源:)。
再次,对于长篇文章感到抱歉,并感谢您的时间。
Béntor。