以下全部基于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. Mysql导入导出 改密命令总结(笔记三)

    一.从数据库导出数据 注意这些语句的执行是在在没进入mysql命令行之前,在mysql命令行不行 C:\Windows\system32>导出命令 而不是 Mysql>导出命令 1.导出整 ...

  2. mac 安装lua并配置Subline Text2 的lua开发环境

    1 .下载相应的lua安装包 方法 一 Mointain Lion - Lua 5.2.1 Lion - Lua 5.2.1 Snow Leopard - Lua 5.2.1 Lua 将默认安装到 / ...

  3. 4)Java容器类相关知识

    1>Array 和 Arrays:   Arrays:用来操作array的工具类,其中包含一组static函数:      equals():比较两个array 是否相等. array拥有相同元 ...

  4. ContentProvider与ContentResolver使用【转】

    这篇文章被转载而转载者未注明原文出处,在此未加上原文地址链接,本人向原作者致以歉意. 下面是文章内容: 使用ContentProvider共享数据: 当应用继承ContentProvider类,并重写 ...

  5. Python脚本控制的WebDriver 常用操作 <一> 启动浏览器

    由于本人的学习定位是基于Selenium+WebDriver+Python+FireFox+Eclipse+Pydev, 所以我的笔记也只和这方面相关. 我打算先学习基于Python脚本WebDriv ...

  6. Github上LeakCanary编译报错CreateProcess error=2的解决方法

    现象说明: 从github上拉下LeakCanary编译时报错 CreateProcess error=2, ϵͳÕҲ»µ½ָ¶ 原因分析: 该现象是由于Windows中Gradle调用命令未加cmd ...

  7. 如何快速重置OUTLOOK2013,2016到初始配置状态,outlook 修改数据文件位置

    适用范围: 安装OUTLOOK的机器 知识点分析: 快速清除当前OUTLOOK所有账户,回归到初始配置状态. 操作步骤: WIN+R调出运行 输入: C:\Program Files (x86)\Mi ...

  8. TFS使用指南

    上一篇文章已经简略介绍过TFS的安装与管理,本篇文章主要描述一下我个人在工作过程中使用TFS的一些指南与建议.本章内容预览: 1.  项目计划与跟踪 经常有很多朋友在日常聊天中抱怨做计划很无畏,因为计 ...

  9. Go循环引用问题

    在Go中,不支持循环引用,即package a引用了packageb以后,package b就不能引用package a了. 最简单的场景: package a中定义context.go用来保存上下文 ...

  10. php之常用函数库

    1.时间和日期 如何获取时间戳 time()--从1970年开始计算的毫秒数 echo time(); 日期 echo date('Y-m-d H:i:s'); 获取默认是时区 echo date_d ...