首先,我要先感谢大家阅读了这么长的文章。非常感谢您的帮助。

事实是,我一直在为我正在大学上的项目进行一些有关如何“连接” 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。(MCRConfiguration.java:87)
在com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.getMCRRoot(MCRConfiguration.java:92)
在com.mathworks.toolbox.javabuilder.internal.MCRConfiguration $ ModuleDir。(MCRConfiguration.java:66)
在com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.getModuleDir(MCRConfiguration.java:71)
在com.mathworks.toolbox.javabuilder.internal.MWMCR。(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。(MCRConfiguration.java:158)
...还有10个

以防万一,链接教程(视频):http://www.mathworks.nl/products/javabuilder/description2.html

任何人都有任何想法可能是什么问题?它说明了有关NullPointerException的一些信息,但是由于用MATLAB创建的类提供了构造函数,因此我不知道如何解决它。我没有安装MCR的任何问题,而且我有MacOS,我希望这不是问题的根源:)。

再次,很抱歉为您提供长期的帖子,并感谢您的宝贵时间。

本托

最佳答案

是的,请安装MCR。安装中还提到设置环境变量(如LD_LIBRARY_PATH等)。如果您使用的是eclipse,我建议您更新环境变量

  • 右键单击->
  • 属性->
  • 运行/调试设置->
  • 环境变量

  • 我还必须确保变量MCR_CACHE_ROOT指向其他目录,因为我的主目录不够大。

    09-10 22:45