java - 在 Matlab 中使用 Protocol Buffer Java 绑定(bind)

标签 java matlab protocol-buffers

我正在尝试在 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');

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

关于java - 在 Matlab 中使用 Protocol Buffer Java 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10440590/

相关文章:

c++ - 未检查/强制执行 Protobuf C++ 必填字段

go - gRPC 流中的错误类型

python - 将代码从 matlab 转换为 python 时出现尺寸错误

通过引用传递的 MATLAB 函数

java - Spring Batch 中如何维护数据库连接和事务

java - 私有(private)字段并重写 getter 和 setter 方法

python - 为什么Matlab和scikit-learn使用PLS回归时结果不同?

java - 使用 ScalaPB 中的 Protocol Buffers 生成 Java 和 Scala 类

java - 将windows bat文件翻译成linux shell脚本

java - 声明扫描仪读取 system.in