java - 使用 Matlab Builder JA 时遇到的问题

标签 java matlab compiler-errors matlab-deployment

首先,我要提前感谢大家阅读这么长的帖子。我非常感谢您的帮助。

问题是,我一直在研究如何为我正在为大学做的一个项目“连接”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,我希望这不是问题的根源:)。

再次对这么长的帖子表示歉意,并感谢您抽出时间。

本托。

最佳答案

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

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

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

关于java - 使用 Matlab Builder JA 时遇到的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10591292/

相关文章:

c++ - std::thread::thread 试图引用已删除的函数

c++ - (编译器错误)为什么 C++ 找不到 .h 文件,即使它在那里?

matlab - 使用 `text` 绘图时如何包装字符串?

matlab - 具有下限的 fmincon 失败,即使解在初始点

python-3.x - cx_freeze给出输入和文件错误

java - 如何让用户决定按钮的特定颜色

使用 MATLAB Engine 连接到已在运行的 MATLAB

java - opencv和python——激光曲线检测

java - 反转 char 数组的最有效方法是什么?

java - Scala 中的多维数组