MATLAB JA Builder создает исключение NullPointerException в конфигурации MCR - PullRequest
3 голосов
/ 16 апреля 2011

Я пытаюсь выполнить функцию MATLAB из Java с помощью JA Builder.

Я следовал за справочной документацией 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

Строка 36 в getmagic.java:

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

Есть ли еще один JAR или набор файлов конфигурации, которые мне нужно включить?В настоящее время программа ссылается на javabuilder.jar и скомпилированный magicsquare.jar из MATLAB, как указано в справочной документации MATLAB JA Builder.

Есть мысли?Спасибо

Ответы [ 2 ]

2 голосов
/ 05 июля 2013

Вам необходимо настроить следующие переменные среды:

LD_LIBRARY_PATH

XAPPLRESDIR

При установке MCR установщик сообщит вам их требуемые значения (которые зависят от вашего mcrroot, каталога, в котором установлена ​​MCR). например для /usr/local/MATLAB/ набор

export XAPPLRESDIR=/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/X11/app-defaults
1 голос
/ 13 мая 2016

Этот параметр работал для меня в 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

Инструкции для других ОС можно найти по адресу http://www.mathworks.com/help/compiler_sdk/java/mcr-path-settings-for-run-time-deployment.html

...