在进行开发 protoc 之前,你需要首先在你的计算机中安装 protoc 编译工具。

下载编译工具

进入 Protocol Buffers 的源代码中然后选择发布的版本中,找到对应的版本。项目的链接地址为:https://github.com/protocolbuffers/protobuf/releases

然后选择 https://github.com/protocolbuffers/protobuf/releases/download/v3.9.0/protoc-3.9.0-win64.zip,对应的版本进行下载。

请注意,如果你这里下载了 3.9.0 的版本的,那么在项目的 Gradle 文件也需要对应的 3.9.0 版本。

请下载对应的版本。

设置环境变量

在下载程序后,需要将下载 zip 文件中的 bin 目录设置到环境变量中。

然后运行 protoc --version 来确定你的编译运行版本已经被正确配置。

通过下图,可以查看配置的文件夹。

通过运行 protoc --version 来确定已经配置正确和编译器版本。

转换 Java 对象

假设我们有一个 proto 文件命名为:simple.proto

simple.proto 的代码在 https://github.com/cwiki-us-demo/protocol-buffers-demo-java/blob/master/src/main/proto/simple.proto 页面中可以访问到。

你可以 Clone 项目到本地后进行执行。

你可以通过运行下面的命令来将 simple.proto 文件为基础生成一个 Java 对象

protoc --proto_path=src --java_out=src/main/java src/main/proto/simple.proto

生成结果如果正常的话,应该是没有输出的。

然后你访问特定的文件夹后就可以看到生成的 Java 对象。

生成的文件的路径和文件在  com.insight.demo.protocolbuffers.mode 这个包中。

请注意,你不能对手动对这个文件进行编译,这个文件都应该是通过程序自动生成的。

GitHub 示例源代码

本教程中的所有源代码都可以在 GitHub 中的 https://github.com/cwiki-us-demo/protocol-buffers-demo-java 项目访问到。

你可以 Clone 代码到你本地后进行运行测试。

https://www.cwiki.us/display/ProtocolBuffers/Protoc

protoc 编译工具的更多相关文章

  1. koala预编译工具的使用

    Koala是一个开源的预处理语言图形编译工具,目前已支持Less.Sass.Compass与CoffeeScript. 安装Koala 在Koala官网根据你的系统平台下载对应的版本.Linux系统要 ...

  2. apk反编译工具

    反编译工具: apktool:资源文件获取,可以提取出图片文件和布局文件进行使用查看 dex2jar:将apk反编译成Java源码(classes.dex转化成jar文件) jd-gui:查看APK中 ...

  3. less及编译工具介绍

    什么是LESSCSS LESSCSS是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法,为CSS的赋予了动态语言的特性,如变量.继承.运算.函数等,更方便CSS的编写和维护. LE ...

  4. eclipse安装反编译工具

    身为一名程序员来说,日常最常做的就是编写代码和查看别人写好的源代码了,有时候打开别人写的class文件发现根本不是自己想要的,所以给大家介绍一种eclipse中反编译class文件的工具. 第一步:下 ...

  5. Koala – 开源的前端预处理器语言图形编译工具

    koala 是一个前端预处理器语言图形编译工具,支持 Less.Sass.Compass.CoffeeScript,帮助 Web 开发者更高效地使用它们进行开发.跨平台运行,完美兼容 Windows. ...

  6. .net混淆、反编译工具调查

    常用的工具列表[比较常见的] 混淆器.加密 Dotfuscator VS默认带的工具,不过是个社区版 强度不大 dotNET Reactor 使用了NativeCode 和混淆的形式 Xenocode ...

  7. Android反编译工具的使用-Android Killer

    今天百度搜索“Android反编译”搜索出来的结果大多数都是比较传统的教程.刚接触反编译的时候,我也是从这些教程慢慢学起的.在后来的学习过程中,我接触到比较方便操作的Android反编译.在这,我将使 ...

  8. iOS系统提供开发环境下命令行编译工具:xcodebuild

    iOS系统提供开发环境下命令行编译工具:xcodebuild[3] xcodebuild 在介绍xcodebuild之前,需要先弄清楚一些在XCode环境下的一些概念[4]: Workspace:简单 ...

  9. Less/Sass编译工具,koala使用指南

    如果你正在使用sass.less或coffee,而没有注意到koala, 那说明你可能已经好久没有更新你的知识库了.koala这个由国人编写的,用于编译sass.less.coffee利器,在最近的短 ...

随机推荐

  1. 【转贴】bat脚本基础教程

    bat脚本基础教程 https://www.cnblogs.com/linyfeng/p/8072002.html 自己动手太少了. bat脚本就是DOS批处理脚本,就是将一系列DOS命令按照一定顺序 ...

  2. 如何在java中去除中文文本的停用词

    1.  整体思路 第一步:先将中文文本进行分词,这里使用的HanLP-汉语言处理包进行中文文本分词. 第二步:使用停用词表,去除分好的词中的停用词. 2.  中文文本分词环境配置 使用的HanLP-汉 ...

  3. 【案例分享】使用ActiveReports报表工具,在.NET MVC模式下动态创建报表

    提起报表,大家会觉得即熟悉又陌生,好像常常在工作中使用,又似乎无法准确描述报表.今天我们来一起了解一下什么是报表,报表的结构.构成元素,以及为什么需要报表. 什么是报表 简单的说:报表就是通过表格.图 ...

  4. ABC130 Task F. Minimum Bounding Box

    题目链接 题解 最小的 bounding box 一定可以在四个时间段的最左端点和最右端点之间取到. 举例言之,设四个时间段分别是 (2, 5), (7, 10), (4, 9), ( 10, 20) ...

  5. 【计算机网络】-介质访问子层-(信道划分介质访问控制&随机访问介质访问控制)

    [计算机网络]-介质访问子层-概述 介质访问控制子层功能 解决信道争用的协议,即用于多路访问信道上确定下一个使用者的协议 是数据链路层协议的一部分 介质访问控制子层位置 位于数据链路层的底部! 信道分 ...

  6. CSS3彩色进度条加载动画 带进度百分比

    在线演示       本地下载

  7. ftp服务器上传下载共享文件

    1 windows下搭建ftp服务器 https://blog.csdn.net/qq_34610293/article/details/79210539 搭建好之后浏览器输入 ftp://ip就可以 ...

  8. 客户端相关知识学习(五)之什么是webView

    webview是什么?作用是什么?和浏览器有什么关系? Android系统中内置了一款高性能 webkit 内核浏览器,在 SDK 中封装为一个叫做 WebView 组件也就是说WebView是一个基 ...

  9. 19 Python之面向对象(成员)

    1. 成员 在类中你能写的所有内容都是类的成员 2. 变量 1. 实例变量: 由对象去访问的变量. class Person: def __init__(self, name, id, gender, ...

  10. this —— javascript

    目录 为什么要讨论this this是什么 如何改变this的指向 箭头函数中的this 为什么要讨论this 代码一: function fun1(){ var aa = 'I am aa'; co ...