Как использовать пользовательские классы Java в Matlab? - PullRequest
1 голос
/ 09 августа 2009

Я прочитал документацию и несколько веб-сайтов о том, как это сделать, однако, похоже, что Matlab не выбирает классы, которые я добавил в динамический путь к классу Java. Также я не использую правильный синтаксис для правильного построения объекта.

У меня есть класс HandDB, который создает объект этого типа и вызывает его статические методы для подключения к базе данных SQL. Класс имеет пустой конструктор и не принимает параметров. Класс является частью пакета 'nuffielddb', который я создал в проекте в Netbeans. Все файлы на моей флешке, это мой E: \ drive ...

Я хотел бы иметь возможность использовать все классы в пакете. Пакет содержится в E: \ nuffielddb.

Я ввел следующие команды в Matlab:

javaaddpath('E:\'); 
javaclasspath;    % Output from java class path includes E:\ within dynamic path
str = java.lang.String('Test'); % Works fine
db = nuffieldbd.HandDB(); % Does not work - undefined variable or class error

Интересно, что я набрал 'import nuffielddb. *;' и не получил ошибки.

Просто, где я иду не так?

Спасибо за вашу помощь, кстати!

Ответы [ 3 ]

1 голос
/ 10 августа 2009

если ваши классы находятся в файле .jar, убедитесь, что ваш путь к классам включает само имя файла .jar (а не только каталог, в котором он находится).

Также, если MATLAB JRE - это Java 1.5 (R2006b - это, в то время как R2009a - это Java 1.6, не уверен, когда они переключились), убедитесь, что ваши классы скомпилированы с 1.5 как целью, а не 1.6, иначе MATLAB не сможет используйте их.

1 голос
/ 11 августа 2009

Незначительное примечание:. * Импорт никогда не будет ошибкой, поэтому он не является диагностическим. Они просто добавляют пакет в список, который просматривает Matlab при попытке разрешить имя класса. Несуществующие пакеты игнорируются.

>> import this.package.does.not.exist.*
>> 
1 голос
/ 09 августа 2009

Ах проблема решена! Ну, не решены в некотором смысле! Я обнаружил, что это на самом деле проблема с моей установкой Matlab, и я не знаю, как это исправить :-( Неважно, это работает на компьютерах в офисе: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...