我正在编写一个用于数学分析的Web应用程序,我想使用Matlab来分析数据并生成一些图形。但是当我在Java Web应用程序中调用matlab代码时,出现了一些错误。
我正在将macos10.16与matlab2016a一起使用。
我计算机的Java版本
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
matlab的Java版本
>> version -JAVA
ans =
Java 1.7.0_75-b13 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
但是当我在Matlab的命令窗口中使用getenv -JAVA_HOME
时,会得到如下结果
ans =
''
matlab代码打包到jar文件中,当我在应用程序中调用jar文件时,会发生以下错误
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.getProxyLibraryDir(MCRConfiguration.java:293)
at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$MCRRoot.get(MCRConfiguration.java:71)
at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$MCRRoot.<clinit>(MCRConfiguration.java:83)
at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.getMCRRoot(MCRConfiguration.java:88)
at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ModuleDir.<clinit>(MCRConfiguration.java:60)
at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.getModuleDir(MCRConfiguration.java:65)
at com.mathworks.toolbox.javabuilder.internal.MWMCR.<clinit>(MWMCR.java:1518)
at matlab.analyze.AnalyzeMCRFactory.newInstance(AnalyzeMCRFactory.java:47)
at matlab.analyze.AnalyzeMCRFactory.newInstance(AnalyzeMCRFactory.java:58)
at matlab.analyze.Plot.<init>(Plot.java:61)
at matlabb.MatlabTest.main(MatlabTest.java:11)
Caused by: java.lang.NullPointerException
at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ProxyLibraryDir.get(MCRConfiguration.java:258)
at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ProxyLibraryDir.<clinit>(MCRConfiguration.java:288)
... 11 more
我希望Web应用程序可以调用jar文件并正确显示图形。