Protobuf基于java的官方示例演示
来源:互联网 发布:网络歌唱大赛 编辑:程序博客网 时间:2024/06/18 16:56
Protobuf基于java的简单示例
先安装Protobuf,并编译protobuf提供的开发,得到protobuf基于java 的类库protobuf-2.5.0.jar,这两部笔者的上一篇博文中有详细的介绍以及资源下载地址,如果不有不太清楚的可以访问笔者的上一篇博文《初识protocol buffer》。下面就直接使用Protobuf 来运行官方提供的简单的示例。
一、具体示例步骤
本文中就直接使用Protobuf本身自带的一些示例,这个示例在 protobuf-2.5.0\examples 目录中。这个示例会用到这个目录中的addressbook.proto、AddPerson.java 和 ListPerson.java 文件。下面一步一步来运行这些示例。
1.首先把前面编译生成的 protobuf-2.5.0.jar复制到 protobuf-2.5.0\examples 目录中,便于引用。
2.接着使用Protobuf编译器编译addressbook.proto 文件。打开命令行窗口,并定位到protobuf-2.5.0\examples 目录中,运行命令
protoc--java_out=. addressbook.proto
执行这个命令后会在protobuf-2.5.0\examples目录下生成一个.java文件,为一个java类文件com.example.tutorial.AddressBookProtos.java。
3.生成了 java 类之后就是编译并运行这个示例。在命令行中执行命令
javac -d . -classpath .;protobuf-2.5.0.jarAddPerson.java ListPeople.java com\example\tutorial\AddressBookProtos.java
4.再运行 AddPerson,在命令中执行命令
java-cp .;protobuf-2.5.0.jar AddPerson addr.dat
5.然后按照提示输入相应的信息,全部效果如下图所示
注意:这里面的命令中,其中protobuf-2.5.0.jar为你编译好的java类库jar的文件名,运行这些命令时,需要电脑安装与jar库同版本的protobuf,同时也需要电脑上已经装有jdk,具体jdk的安装这里就不多说了。具体出现相关错误可以参考后面的错误说明
6.运行上面程序后会在当前目录中创建一个数据文件 addr.dat 保存 protocol buffer 生成的数据。运行程序 ListPeople 则可以读取 addr.dat 文件中的数据。执行命令如下
java -cp .;protobuf-2.5.0.jar ListPeopleaddr.dat
可以看到如下信息:
二、使用到的命令
使用到的命令表,命令具体后续详细介绍,这里只提出需要注意的部分说明:
cd C:\server\protobuf-2.5.0\examples
将cmd工作空间定位到examples目录中
protoc --java_out=. addressbook.proto
通过protobuf编译.proto文件,
其中addressbook.proto为需要编译的文件名
将生成对应的java类(具体该类介绍,后续博文中再进行介绍)
javac -d . -classpath .;protobuf-2.5.0.jar AddPerson.java ListPeople.java com\example\tutorial\AddressBookProtos.java
编译java文件生成class文件
运行该命令前需要在example中导入protobuf基于java的类库(即上一部中生成的jar包),其中protobuf-2.5.0.jar为该类库的名字
java -cp .;protobuf-2.5.0.jar AddPerson addr.dat
运行AddPerson,生成addr.dat文件,
java -cp .;protobuf-2.5.0.jar ListPeople addr.dat
运行ListPeople,读取addr.dat文件
三、相关错误说明
1.一旦出现“‘protoc’不是内部或外部命令...”或者“‘javac’ 不是内部或外部命令...”等相关错,说明protoc或jdk没有安装成功。
2.如出现下图中错误,则有可能是cmd工作空间没有定位到protobuf-2.5.0\examples目录,或者examples目录中没有addressbook.proto文件,抑或执行命令中将.proto文件名书写错误
3.如果出现下图错误,则可能是因为未将protobuf基于java的类库(protobuf-2.5.0.jar)文件导入到examples目录下
4如果出现下图错误,则可能是因为你导入的protobuf基于java的类库文件(protobuf-x.x.x.jar)版本与你安装的protobuf编译器(proto.exe)版本不同。
5如果出现关于文件找不到等相关错误,请检查你命令的执行顺序以及命令中文件名的拼写等。
资源相关:
一、本文参考资源
1.Protobuf简介和使用原理 http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/
2.Protobuf使用入门 http://blog.sina.com.cn/s/blog_492dbb6b0100qorb.html
二、本文使用到的资源(个人云盘)
1protobuf-2.5.0.tar.gz + protobuf-2.5.0.jar + proto.exe下载:
http://pan.baidu.com/s/1sjuxdFJ
2其他protobuf相关资源下载:
http://pan.baidu.com/s/1c0I4cU0
- Protobuf基于java的官方示例演示
- protobuf学习笔记-官方示例
- 演示水晶报表设计概念的官方示例报表列表
- 演示水晶报表设计概念的官方示例报表列表
- 演示水晶报表设计概念的官方示例报表列表
- 演示水晶报表设计概念的官方示例报表列表
- ZXing基于Android Studio 的示例演示搭建
- 基于protobuf的RPC实现
- 基于protobuf的RPC实现
- 基于protobuf的RPC实现
- 基于protobuf的RPC实现
- 基于protobuf的RPC实现
- 基于protobuf的RPC实现
- 基于protobuf的RPC实现
- JAVA操作google protobuf简单示例
- Protobuf笔记以及Java Js 示例
- ProtoBuf 的java使用
- ProtoBuf 的java使用
- python练习:逆波兰,冒泡排序,快速排序
- Tomcat内存溢出的三种情况及解决办法分析
- 游标cursor使用
- c# 日期函数[string.Format----GetDateTimeFormats]格式 .
- android 隐藏自己的多媒体文件
- Protobuf基于java的官方示例演示
- android 将Json数据动态的添加到String[]数组当中
- 天猫浏览型应用的CDN静态化架构演变
- objc_getClass
- springMVC返回的json日期为Long的格式化
- eclipse关联git的方法
- 2015-10-30-03-Android Log使用心得
- 删除MySQL数据库
- nable to resolve target 'android-19'