Я использовал Swig для создания оболочки Java для библиотеки, написанной на C ++. Оболочки генерируются в пакет, а затем jar
'ed. Файлы скомпилированы правильно и отлично работают с Java, но я не могу вызвать его из MATLAB.
Я попытался добавить путь к jar в файле статического пути Java в MATLAB, а затем вызвал классы в файле jar, но получаю ошибку "Undefined variable or class.."
Или, если я пытаюсь использовать javaObject(...)
"No class * can be located on Java class path"
.
Я не уверен, что я делаю неправильно.
EDIT:
Чтобы проверить вызов библиотеки c ++ из MATLAB, я создал простой класс «чтения данных», который содержит функцию, которая записывает случайно сгенерированный vector< vector<double> >
в текстовый файл, и функцию, которая читает его.
Сгенерированные файлы swig: SimpleReader.java
, DoubleVector.java
, exampleJNI.java
, example.java
, DoubleVector2.java
в пакете com.example.reader
. Они скомпилированы и упакованы в example.jar
(сгенерированная библиотека также упакована в jar).
Все работает нормально, вызывая его из Java, поэтому проблема должна быть специфичной для MATLAB. Для MATLAB не так много кода, так как кажется, что ничего не работает. Я дошел до
javaclasspath('c:/reader/reader.jar');
obj = com.example.reader.SimpleReader;
в этот момент я получаю 'Undefined variable "com" or class "com.example.reader.SimpleReader"'