Я использовал Swig для создания оболочки Java для библиотеки, написанной на C ++. Обертки генерируются в пакет, а затем jar
'ed. Файлы скомпилированы правильно и отлично работают с java, но я не могу вызвать его из MATLAB.
Я попытался добавить путь к jar в статическом файле пути Java в MATLAB, а затем вызвать классы в файле jar, но я получить ошибку «Неопределенная переменная или класс ..»
Или, если я попытаюсь использовать javaObject (...)
«Класс * не может быть расположен на пути класса Java»
.
Я не уверен, что делаю неправильно.
РЕДАКТИРОВАТЬ:
Чтобы проверить вызов библиотеки C ++ из MATLAB, я создал простой класс «считывателя данных», который содержит функцию, которая записывает случайно сгенерированный vector
в текстовый файл и функцию, которая его читает.
Сгенерированные файлы swig: SimpleReader.java
, DoubleVector.java
, exampleJNI.java
, example.java
, DoubleVector2.java
в пакете com.example.reader
. Они скомпилированы и упакованы в example.jar
(сгенерированная библиотека dll также упакована в jar).
Все работает нормально, вызывая ее из java, поэтому проблема должна быть специфичной для MATLAB. Для MATLAB не так много кода, так как ничего не работает. Я дохожу до
javaclasspath('c:/reader/reader.jar');
obj = com.example.reader.SimpleReader;
, после чего получаю 'Неопределенная переменная "com" или класс "com.example.reader.SimpleReader"'