我正在尝试在 Matlab 中使用 Java protobuf stub 。我在 Eclipse 中生成了 Java stub 和相应的 jar 文件。然后,我获取该 jar 文件并将其添加到 Matlab 路径中。在 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 jar。所以这验证了我的 stub 是正确的。我还在我的 Matlab 项目中成功导入并使用了不同的 Java 库 zmq.jar,因此在一定程度上验证了我知道如何将 jar 文件正确导入到 Matlab 中。
我没有附加生成的 Java stub 文件,因为它很长。我希望有人能够指出我仅使用我提供的代码做错了什么。如果需要,我将添加 stub 源。
提前致谢!
最佳答案
由于生成的protocol buffer消息类是内部类,所以需要使用Matlab的javaMethod命令来获取静态方法。导入语句将不起作用。使用您的示例:
image = javaMethod('newBuilder','raven.aos.Messages$Image');
关于java - 在 Matlab 中使用 Protocol Buffer Java 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10440590/