以下全部基于win7系统。

protobuf是什么,有什么用网上说的已经很多了。这里就是说一下怎么使用。就当给自己做个笔记吧。

.proto文件的语法什么的也请网上查看,挺多的。

第一步: 下载protoc.exe 和 protobuf-java-2.4.1.jar。这里要注意版本区别(网上不少人说要下载protoc-2.4.1-win32.zip,但是没有找到)。其实protobuf就不用安装,只是使用protoc.exe生成一下java文件罢了。

下载路径 http://pan.baidu.com/s/1sj0VX1r

也可以下载最新版:https://developers.google.com/protocol-buffers/docs/downloads

第二步:下载好后任意放到一个文件夹,这里我放到了E:/protobuf下。然后新建一个person.proto文件:

option java_package = "com.zh.test";
option java_outer_classname = "Persons";
message PersonInfo {
required int32 id = 1;
required string name = 2;
}

第三步:生成java文件。在cmd中执行命令E:\protobuf>protoc.exe --java_out=./ person.proto。注意:./后面有一个空格

    然后就能看到在当前文件夹下生成一个com文件夹,这就是上面生成的.java文件的包了。逐级打开包就能看到Persons.java文件了。

第四步:把生成的Persons.java文件拷贝的项目中,然后就可以测试了,看如下代码

public class TestProtobuf {
public static void main(String[] args) {
Persons.PersonInfo.Builder builder=Persons.PersonInfo.newBuilder();
builder.setId(1);
builder.setName("zhang");
Persons.PersonInfo info=builder.build();
byte[] result=info.toByteArray();
System.out.println("==========="+result); try {
Persons.PersonInfo msg = Persons.PersonInfo.parseFrom(result);
System.out.println(msg.getId());
System.out.println(msg.getName());
} catch (InvalidProtocolBufferException e) {
e.printStackTrace();
}
} }

OK,到这里就完成了序列化。

protobuf的安装和使用的更多相关文章

  1. PHP7中Protobuf的安装使用

    PHP7中Protobuf的安装使用 写这篇文章的缘由是最近在关注RPC框架序列化的一些原理.但是在安装Protobuf的时候,发现网上的教程都太老了,加上目前Protobuf官方已经支持PHP了,不 ...

  2. Protobuf从安装到配置整理帖

    新做的Mini项目计划使用Google的Protobuf来做,关于Protobuf是什么玩意能干什么请自己去看这里:http://code.google.com/p/protobuf/ 这里讲一下安装 ...

  3. Google protobuf的安装及使用

    最近应为工作的需要,合作的部门提供了protobuf的接口,总结了一下使用的过程和方法如下: 下载protobuf-2.3.0: http://protobuf.googlecode.com/file ...

  4. Protobuf从安装到配置整理帖 --转

    新做的Mini项目计划使用Google的Protobuf来做,关于Protobuf是什么玩意能干什么请自己去看这里:http://code.google.com/p/protobuf/ 这里讲一下安装 ...

  5. protobuf 编译安装

    1.protobuf是google公司提出的数据存储格式,详细介绍可以参考:https://developers.google.com/protocol-buffers 2.下载最新的protobuf ...

  6. Protobuf的安装使用

    date: 2018-10-12  18:59:13 版权归属原作者,本位转自:https://www.cnblogs.com/autyinjing/p/6495103.html 1. 是什么? Go ...

  7. protobuf编译安装

    为什么选择protobuf,而不选择thift和avro,原因大概几点吧,网上对比的文章很多,我主要关注以下几点 1.protobuf序列化性能最好,序列化后字节数最少. 2.protobuf是单纯的 ...

  8. C++ProtoBuf的安装与使用

    目录 安装(Ubuntu 16.04) 简介 proto2 proto3 用法 proto3 输出结果 总结 @(目录) 安装(Ubuntu 16.04) sudo apt-get install a ...

  9. protobuf文档翻译-安装,数据格式及编码规范

    Install Download protobuf: https://github.com/protocolbuffers/protobuf/releases unzip protoc-3.8.0-l ...

随机推荐

  1. Yii框架中使用PHPExcel导出Excel文件

    最近在研究PHP的Yii框架,很喜欢,碰到导出Excel的问题,研究了一下,就有了下面的方法: 1.首先在config\main.php中添加对PHPExcel的引用,我的方式是这样: 1 2 3 4 ...

  2. Using-jqGrid-s-search-toolbar-with-multiple-filter

    http://www.codeproject.com/Articles/58357/Using-jqGrid-s-search-toolbar-with-multiple-filter

  3. Simple Shopping Cart By AngularJS

    <body ng-controller='CartController'> <h1>Your Order</h1> <div ng-repeat='item ...

  4. STL之容器基本操作

    容器类 STL Container Header Applications vector <vector> 直接访问任意元素,快速插入.删除尾部元素 deque <deque> ...

  5. 16.python中的浅拷贝和深拷贝

    在讲什么是深浅拷贝之前,我们先来看这样一个现象: a = ['scolia', 123, [], ] b = a[:] b[2].append(666) print a print b

  6. [terry笔记]ArchiveLog归档日志激增解决思路

    归档日志激增的危害是巨大的,最严重的结果就是数据库无法正常工作,导致整个系统无法正常工作,其次就算数据库可以正常工作,但激增的归档会对磁盘产生大量消耗,导致性能下降.       归档日志激增一般是因 ...

  7. Linux学习-0627

    1.文件处理命令ls愿意:list权限:所有用户ls -a all 所有文件ls -l long 详细信息ls -d directory 查看目录,目录自己详细信息选项可以组合使用,  ls -ld ...

  8. Map和HashMap

    通过查询JDK帮助文档,我们可以得知Map的说明.方法等 import java.util.Map; import java.util.HashMap; class Test{ public stat ...

  9. 我爱我家:我为什么选择AppCan?

    10年前,说起手机,大家联想到的词大概是:电话.短信.QQ.拍照,以及贪吃蛇等有限的几个小游戏.而如今,手机毫无疑问已经成为人们生活中不可或缺的部分.这是一个神奇的东西:通讯工具,外卖神器,游戏机,移 ...

  10. 关于table元素的认识

    表格是网页上最常见的元素,但是,现在对很多刚入行的前端们那是谈table色变.那是为啥?这是表格的框架的简单.明了.在传统的网页中使用没有边框的表格来排版是非常流行.在web标准逐渐深入设计领域以后, ...