Интерфейс Matlab-Java, конфликтующие версии Java

Я использовал инструмент развертывания Matlab, чтобы встроить код Matlab в проект Java. У меня возникла проблема с интерфейсом Matlab-Java, ошибка при запуске java-кода:

Исключение в потоке "main" java.lang.UnsatisfiedLinkError: Не удалось найти библиотеку mclmcrrt7_15.dll, необходимую для MATLAB Builder JA, в java.library.path. Эта библиотека обычно устанавливается вместе с MATLAB или MCR, ее отсутствие может указывать на проблему с этой установкой или текущей конфигурацией пути. Версия MCR, которую пытается использовать этот компонент: 7.15.

Когда я набираю «версия -java» в консоли Matlab, ответ — Java 1.6.0_17-b04. Итак, я изменил свой путь в системных настройках на ...\Files\Java\jdk1.6.0_33\bin Но, поскольку у меня установлена ​​Java версии 7, он не использует версию 6. В командной строке, когда я проверил версию java и javac, я увидел, что версия javac — 1.6, а версия java — 1.7. Я также создал переменную среды CLASSPATH и переменную JAVAHOME и установил для нее значение 1.6. Не могли бы вы рассказать мне, как мне изменить версию Java, используемую системой, на 1.6, чтобы Matlab мог с ней взаимодействовать?

Я думаю, что это проблема, но я просто догадываюсь из сообщения об ошибке. Пожалуйста, дайте мне знать, если проблема в чем-то другом, а не только в несовместимости в версиях java.


person user1493972    schedule 01.07.2012    source источник
comment
Ссылаясь на Тема темы: MCR в 64-разрядной версии Windows 7 — помогите! Я могу предположить вам необходимо установить MCR, соответствующий инструменту развертывания.   -  person zellus    schedule 01.07.2012
comment
@ user1493972: прочитайте первую часть этого: stackoverflow.com/a/11056140/97160   -  person Amro    schedule 01.07.2012


Ответы (2)


Находится ли где-нибудь DLL mclmcrrt7_15.dll на PATH?

Чтобы Java могла загружать DLL, DLL должна находиться в папке, указанной в системном свойстве java.library.path. Значением по умолчанию для этого свойства в Windows является переменная среды PATH.

person Luke Woodward    schedule 01.07.2012
comment
DLL mclmcrrt7_15.dll изначально находилась в папке C:\Program Files\MATLAB\MATLAB Compiler Runtime\v715\runtime\win64. - person user1493972; 01.07.2012
comment
но я скопировал его в папку PATH. Это все еще дает ту же ошибку. - person user1493972; 01.07.2012
comment
Почему вы скопировали DLL в папку уже на PATH вместо того, чтобы добавить папку, содержащую DLL, на PATH??? Может быть, эта DLL пытается найти другие DLL в этой папке и не может загрузиться, потому что не может их найти? - person Luke Woodward; 01.07.2012
comment
Хорошо, мой плохой. Теперь я добавил папку, содержащую DLL, в PATH. Все равно выдает ту же ошибку.. - person user1493972; 01.07.2012
comment
Вы перезапускали MATLAB после изменения PATH? (Я признаю, что на самом деле я не использовал MATLAB и Java вместе, и в данный момент у меня нет доступа к установке MATLAB, но я раньше работал с Java и внешними DLL. Я также признаю, что у меня заканчиваются идеи о как решить вашу проблему) - person Luke Woodward; 02.07.2012

Просто исправьте ту же ошибку на моей машине. В моем случае это исправляется добавлением пути MATLAB в переменные окружения SYSTEM:

добавить в PATH

-C:\Program Files\MATLAB\R2011a\bin;
-C:\Program Files\MATLAB\R2011a\runtime\win64

Желаю, чтобы это было полезно.

person mary_112204    schedule 20.10.2014