protoc 编译工具

简介: 在进行开发 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,对应的版本进行下载。

在进行开发 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,对应的版本进行下载。

protocolbuffers_01

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

请下载对应的版本。

设置环境变量

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

protocolbuffers_02

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

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

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

protocolbuffers_03

转换 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

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

protocolbuffers_04

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

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

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

protocolbuffers_05

GitHub 示例源代码

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

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

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

目录
相关文章
|
网络协议 JavaScript Java
2-TDengine客户端连接,RESTful,JDBC
2-TDengine客户端连接,RESTful,JDBC
3814 0
2-TDengine客户端连接,RESTful,JDBC
|
存储 Linux 图形学
Unity 基础 之 PlayerPrefs数据存储
PlayerPrefs 游戏存档俗称玩家偏好。 工作原理非常简单,以键值对的形式将数据保存在文件中,然后程序可以根据这个名称取出上次保存的数值。
1205 0
|
前端开发 JavaScript 测试技术
React 错误边界 (Error Boundaries) 详解
【10月更文挑战第17天】在现代前端开发中,React 通过“错误边界”机制提高了应用的健壮性和用户体验。错误边界是一种特殊的 React 组件,能捕获并处理其子组件树中的 JavaScript 错误,防止应用因局部错误而整体崩溃。创建错误边界需实现 `static getDerivedStateFromError` 和 `componentDidCatch` 方法,分别用于更新状态和记录错误。正确使用错误边界,可以有效提升应用的稳定性和用户满意度。
1097 62
|
Ubuntu Shell 数据安全/隐私保护
百度搜索:蓝易云【Ubuntu密码忘记怎么办 Ubuntu重置root密码方法】
完成上述步骤后,Ubuntu系统的root密码应该已经被成功重置为你设置的新密码。请确保在重置密码后牢记新密码。
661 0
|
存储 调度 块存储
十二年磨一剑:三代架构演进,打造高性能、低成本的块存储!
上周,全球计算机存储顶会USENIX FAST 2024 在美国加州圣克拉拉召开,继去年获得国内首个FAST最佳论文奖后,凭借在分布式块存储上的创新,阿里云新作再次斩获FAST大会最佳论文奖。这也是国内唯一一家连续两年获得FAST最佳论文奖的科技公司。
107452 105
|
Web App开发 移动开发 前端开发
HTML5打造的炫酷本地音乐播放器-喵喵Player
将之前捣腾的音乐频谱效果加上一个播放列表就成了现在的喵喵播放器(Meow meow Player,额知道这名字很二很装萌~),全HTML5打造的网页程序,可本地运行也可以挂服务器上用。   在线Demo及源码 你可以访问下面的地址打开在线demo: http://wayou.
2468 0
HTML5打造的炫酷本地音乐播放器-喵喵Player
|
存储 安全 数据中心
【Docker 专栏】Docker 容器与宿主机的资源隔离机制
【5月更文挑战第8天】Docker容器利用Namespace和Cgroups实现资源隔离,保证CPU、内存、网络和存储的独立,提升资源利用率和系统安全性。资源隔离有助于简化应用部署与管理,但也带来资源竞争、监控管理及安全挑战。理解并善用资源隔离机制能实现更高效、安全的容器运行。随着技术进步,Docker容器资源隔离将持续优化。
1585 2
【Docker 专栏】Docker 容器与宿主机的资源隔离机制
|
存储 缓存 NoSQL
高并发项目部署以及优化手段
高并发项目部署以及优化手段
1601 0
|
机器学习/深度学习 数据采集 人工智能
【机器学习】怎样检测到线性回归模型中的过拟合?
【5月更文挑战第17天】【机器学习】怎样检测到线性回归模型中的过拟合?
|
缓存 监控 前端开发
如何在 Linux 命令行中检查 CPU 使用率
【5月更文挑战第8天】
2048 0