首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Unix环境中的MATLAB Runtime上运行Java代码

无法在Unix环境中的MATLAB Runtime上运行Java代码
EN

Stack Overflow用户
提问于 2018-07-18 16:29:00
回答 0查看 135关注 0票数 0

将matlab函数导出到java包之后。我曾尝试运行下面的unix环境代码,其中包含MATLAB运行时。

代码语言:javascript
复制
import com.mathworks.toolbox.javabuilder.MWArray;
import com.mathworks.toolbox.javabuilder.MWCharArray;
import calibrationAPINew.Calibration;

public class CHIndexCalculation {
        public static void main(String[] args) {

              MWCharArray number1 = null;
              Object[] result = null;
              Calibration calibration = null;
              String data = "{\r\n" +
                        "\"tsId\" : \"121213\",\r\n" +
                        "\"datapoints\" : [0.1,0.2,0.3,0.4]\r\n" +
                        "}";

              try
              {
                 System.out.println("Input data: " + data);
                 number1 = new MWCharArray(data); // Array of Input to be sent to MATLAB Runtime
                 System.out.println("MWCharArray: " + number1);
                 calibration = new Calibration();
                 result = calibration.calibrationAPI(1,number1);

                 System.out.println("Output : " +  result[0]);
              }
              catch (Exception e)
              {
                System.out.println("Exception Occurred : " + e);
                 e.printStackTrace();
              }
              finally
              {
                 //MWArray.disposeArray(number1);
                 //MWArray.disposeArray(result);
                 //calibration.dispose();
              }

        }
}

我已经在unix机器上安装了matlabruntime,并使用export语句设置了环境变量。

代码语言:javascript
复制
export LD_LIBRARY_PATH=matlabrt/v92/runtime/glnxa64:matlabrt/v92/bin/glnxa64:matlabrt/v92/sys/os/glnxa64:matlabrt/v92/sys/opengl/lib/glnxa64

现在,当我尝试运行该命令时( calibrationAPINew.jar是从MATLAB导出的jar文件)

代码语言:javascript
复制
java -cp javabuilder.jar:calibrationAPINew.jar:. CHIndexCalculation

我得到了以下异常

代码语言:javascript
复制
com.mathworks.toolbox.javabuilder.MWException: Undefined function 'pdist2mex' for input arguments of type 'double'.
        at com.mathworks.toolbox.javabuilder.internal.MWMCR.mclFeval(Native Method)
        at com.mathworks.toolbox.javabuilder.internal.MWMCR.access$600(MWMCR.java:31)
        at com.mathworks.toolbox.javabuilder.internal.MWMCR$6.mclFeval(MWMCR.java:882)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.mathworks.toolbox.javabuilder.internal.MWMCR$5.invoke(MWMCR.java:769)
        at com.sun.proxy.$Proxy0.mclFeval(Unknown Source)
        at com.mathworks.toolbox.javabuilder.internal.MWMCR.invoke(MWMCR.java:443)
        at calibrationAPINew.Calibration.calibrationAPI(Calibration.java:223)
        at CHIndexCalculation.main(CHIndexCalculation.java:24)

我知道这与MATLAB运行时有关,但我不知道是什么原因?同样的设置在windows环境下也能正常工作。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51397126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档