2012-05-03 1 views
1

Я пытаюсь использовать Java protobuf stub внутри Matlab. Я создал заглушку Java и соответствующий файл jar в Eclipse. Затем я беру файл jar и добавляю его в путь Matlab. В Matlab я сделать следующее:Использование буфера протокола Java привязки в Matlab

import raven.aos.*; 
import raven.aos.Messages.*; 
image = Image.newBuilder(); 

На данный момент я получаю сообщение об ошибке, говорящее:

??? Undefined variable "Image" or class "Image.newBuilder". 
Error in ==> pub>pub.pub at 16 
image = Image.newBuilder(); 

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

Я воздержался от прикрепления сгенерированного файла-заглушки Java, так как он очень длинный. Я надеюсь, что кто-то может указать, что я делаю неправильно, только с кодом, который я предоставил. Если потребуется, я добавлю источник заглушки.

Заранее благодарен!

+0

делает 'inmem' показать класс' Image' загружается? – Torious

+0

Так сразу после импорта я запустил disp (inmem), и я получил следующее: 'workspacefunc' 'pub'. Паб - это имя переменной, которое я дал классу. Таким образом, это не загрузка, что имеет смысл, учитывая исходное сообщение об ошибке. Моя проблема в том, что я не знаю, почему она не загружает его. –

+0

См. [Эту ссылку] (http://www.mathworks.nl/help/techdoc/matlab_external/f4863.html), раздел ** Создание классов в доступном файле JAR **; похоже, что вы должны указать полное имя файла банку. – Torious

ответ

1

Поскольку созданные классы буфера сообщений протокола являются внутренними классами, вам нужно использовать команду javaMethod для Matlab, чтобы перейти к статическим методам. Операция импорта не работает. Используя ваш пример:

image = javaMethod('newBuilder','raven.aos.Messages$Image'); 

http://www.mathworks.com/help/techdoc/ref/javamethod.html

 Смежные вопросы

  • Нет связанных вопросов^_^