3

JA Builder を使用して Java から MATLAB 関数を実行しようとしています。

MATLAB JA Builder のヘルプ ドキュメント (HelloWorld および MagicSquare の例) に従いましたが、毎回次のスタック トレースを受け取りました。

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.mathworks.toolbox.javabuilder.MWUtil.GetUnknownClassID(MWUtil.java:727)
at com.mathworks.toolbox.javabuilder.MWClassID.<clinit>(MWClassID.java:41)
at getmagic.main(getmagic.java:36)
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

getmagic.java の 36 行目は次のとおりです。

n = new MWNumericArray(Double.valueOf(args[0]), MWClassID.DOUBLE);

含める必要がある別の JAR または構成ファイルのセットはありますか? プログラムは現在、MATLAB JA Builder ヘルプ ドキュメントで指定されているように、MATLAB から javabuilder.jar とコンパイル済みの magicsquare.jar を参照しています。

何かご意見は?ありがとう

4

2 に答える 2

2

次の環境変数を構成する必要があります。

LD_LIBRARY_PATH

XAPPLRESDIR

MCR をインストールするとき、インストーラーは必要な値を教えてくれます (これは、MCR がインストールされているディレクトリである mcrroot によって異なります)。例えば/usr/local/MATLAB/セット

export XAPPLRESDIR=/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/X11/app-defaults
于 2013-07-04T22:13:53.697 に答える
1

この設定は、Linuxでうまくいきました:

export LD_LIBRARY_PATH=/usr/lib/matlab-8.6/runtime/glnxa64 \
       /usr/lib/matlab-8.6/bin/glnxa64 \
       /usr/lib/matlab-8.6/sys/os/glnxa64 \
       /usr/lib/matlab-8.6/sys/opengl/lib/glnxa64

他の OS の手順については、http://www.mathworks.com/help/compiler_sdk/java/mcr-path-settings-for-run-time-deployment.htmlを参照してください。

于 2016-05-13T10:34:51.563 に答える