2012-05-14 30 views
2

首先我想先感谢大家阅读这么长的帖子。我非常感谢你的帮助。使用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。

回答

2

是的,请安装MCR。该装置还提到了有关设置环境变量,如LD_LIBRARY_PATH等。如果使用的是Eclipse,我建议您更新环境变量

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

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

0

以上解决方案的帮助我(我已经安装了MCR和Mac上使用DYLD_LIBRARY_PATH,而不是LD_LIBRARY_PATH),以及其他没有人在网上似乎知道。最后在绝望中,我尝试编辑DYLD_LIBRARY_PATH并最终通过删除它的最后一部分来工作:/ Applications/MATLAB/MATLAB_Compiler_Runtime/v82/sys/java/jre/maci64/jre/lib

现在演示应用程序的教程作品。

接下来试图让我的代码工作。