2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Помогите подружить MATLAB и JAVA
Сообщение16.01.2018, 14:44 
Аватара пользователя


26/05/12
1694
приходит весна?
Конечная цель, которую я хочу достигнуть — создать в Матлабе экземпляр одного из классов моего Java-приложения, инициализировать его, вызвать нужный метод с параметрами и получить результат работы. Помогите, пожалуйста, мне этого добиться.

Я прочитал несколько статей с документацией и советами, которые нашлись по этому вопросу в Гугле. Например, вот здесь не плохо всё написано. Следуя этим советам я делаю следующее.

Добавляю путь к папке с Java-программой в список динамический путей матлаба, убеждаюсь, что он добавлен, и пытаюсь создать экземпляр java-переменной:

>> javaaddpath('E:\Documents\Java Progs\Java_Learning\Problem_1363')
>> javaclasspath

STATIC JAVA PATH

C:\Program Files\MATLAB\R2017a\java\patch
C:\Program Files\MATLAB\R2017a\java\jarext\ant.jar

...

C:\Program Files\MATLAB\R2017a\java\jar\zh_CN\web_connectivity_res.jar

DYNAMIC JAVA PATH

E:\Documents\Java Progs\Java_Learning\Problem_1363
>>
>>
>> javavar = FloydSteinbergDithering(100, 100, 127)
Undefined function or variable 'FloydSteinbergDithering'.

>>


И эта ошибка ставит меня в полный тупик.


Содержимое папки "E:\Documents\Java Progs\Java_Learning\Problem_1363" следующее:

E:\Documents\Java Progs\Java_Learning\Problem_1363>dir
Том в устройстве E имеет метку Data
Серийный номер тома: 0829-6867

Содержимое папки E:\Documents\Java Progs\Java_Learning\Problem_1363

16.01.2018 14:41 <DIR> .
16.01.2018 14:41 <DIR> ..
14.01.2018 11:14 226 .classpath
14.01.2018 11:14 388 .project
16.01.2018 14:33 1 325 FloydSteinbergDithering.class
16.01.2018 14:33 1 048 Problem_1363.class
16.01.2018 14:33 3 569 Problem_1363.java
5 файлов 6 556 байт
2 папок 47 097 630 720 байт свободно

E:\Documents\Java Progs\Java_Learning\Problem_1363>


Версия Matlab и Java:

>> ver
----------------------------------------------------------------------------------------------------
MATLAB Version: 9.2.0.538062 (R2017a)
Operating System: Microsoft Windows 7 Максимальная Version 6.1 (Build 7601: Service Pack 1)
Java Version: Java 1.7.0_60-b19 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
----------------------------------------------------------------------------------------------------


Для написания и помпиляции Java-приложения использую Oracle. Что я делаю не так?

 Профиль  
                  
 
 Re: Помогите подружить MATLAB и JAVA
Сообщение16.01.2018, 15:06 


08/12/17
340
Какому пакету у вас принадлежит класс FloydSteinbergDithering? Возможно, нужно согласовать имя пакета с фактическим положением класса на файловой системе в вашем каталоге.

 Профиль  
                  
 
 Re: Помогите подружить MATLAB и JAVA
Сообщение16.01.2018, 15:28 
Аватара пользователя


26/05/12
1694
приходит весна?
Пакета никакого нет. Только что нашёл в документации "MATLAB - External Interfaces" замечание, что для классов без пакета нужно указывать полный путь к файлу класса. Попробовал:

>> javaaddpath('E:\Documents\Java Progs\Java_Learning\Problem_1363\FloydSteinbergDithering.class')
>> javaclasspath

STATIC JAVA PATH

C:\Program Files\MATLAB\R2017a\java\patch
...

C:\Program Files\MATLAB\R2017a\java\jar\zh_CN\web_connectivity_res.jar

DYNAMIC JAVA PATH

E:\Documents\Java Progs\Java_Learning\Problem_1363\FloydSteinbergDithering.class
E:\Documents\Java Progs\Java_Learning\Problem_1363
>>
>>
>> javavar = FloydSteinbergDithering
Undefined function or variable 'FloydSteinbergDithering'.

>> javavar = FloydSteinbergDithering(100, 100, 127)
Undefined function or variable 'FloydSteinbergDithering'.


Не помогает.

 Профиль  
                  
 
 Re: Помогите подружить MATLAB и JAVA
Сообщение21.01.2018, 11:52 
Аватара пользователя


26/05/12
1694
приходит весна?
Неужели на форуме нет ни одного знатока Матлаб???

 Профиль  
                  
 
 Re: Помогите подружить MATLAB и JAVA
Сообщение21.01.2018, 16:44 
Заслуженный участник


26/05/14
981
Я не знаток MatLab. Поиск в Гугл выдал https://www.mathworks.com/help/matlab/ref/javaaddpath.html?requestedDomain=true, где написано можно добавлять папки и архивы. А вы добавляете класс.
Цитата:
javaaddpath(dpath) adds one or more folders or Java® Archive (JAR) files to the beginning of the current dynamic class path. Use the dynamic path when developing and debugging your own Java classes.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group