protoc.exe java_protobuf——使用protoc.exe生成message文件
1.下载protoc.exe和对应jar包
protoc.exe从https://github.com/protocolbuffers/protobuf/releases下载protoc-3.7.0-win64.zip,解压后bin目录下有对应proto.exe文件。
jar包去maven库中搜索protobuf-java-3.7.0.jar.
2.编写test.proto文件
package message;
option java_package = "com.test.message";
option java_multiple_files = true;//生成的message文件是多个,在一个包下,否则是一个包装类
option optimize_for = LITE_RUNTIME;
//Protocol Buffer定义三种优化级别SPEED/CODE_SIZE/LITE_RUNTIME。缺省情况下是SPEED。
//SPEED: 表示生成的代码运行效率高,但是由此生成的代码编译后会占用更多的空间。
//CODE_SIZE: 和SPEED恰恰相反,代码运行效率较低,但是由此生成的代码编译后会占用更少的空间,通常用于资源有限的平台,如Mobile。
//LITE_RUNTIME: 生成的代码执行效率高,同时生成代码编译后的所占用的空间也是非常少。这是以牺牲Protocol Buffer提供的反射功能为代价的。
// SPEED和LITE_RUNTIME相比,在于调试级别上,例如 msg.SerializeToString(&str) 在SPEED模式下会利用反射机制打印出详细字段和字段值,但是LITE_RUNTIME则仅仅打印字段值组成的字符串;
message RequestDataMsg1
{
required int32 id = 1;
optional string dataType = 2;
}
message StringIntegerMap
{
required string dataName = 1;
required int32 data = 2;
}
message ResponseDataMsg2
{
repeated StringIntegerMap dataMap = 1;
}
3.编写generateProto.bat,使用批处理执行protoc.exe --java_out=生成message的目录 test.proto 命令生成message文件(可以在命令行直接去protoc.exe所在目录执行)
@title generate message
@cd %~dp0
@rem %~dp0 “d”为Drive的缩写,即为驱动器,磁盘、“p”为Path缩写,即为路径,目录
@rem current dir: %~dp0
%~d0
@echo batch generate proto
@rem @author chencan
@rem @echo off常用于开头,表示不显示所有的命令行信息,包括此句,相当于在每一行开头加 @
@rem 在批处理文件里面用 for,变量就用 %%
@rem set是对参数的定义,动态的话需要加上/p的条件
@echo off
set /p protoFile=please input filename:
if exist "%protoFile%" goto:process
rem call跳转到子批处理,并且不终止父批处理,start 是在新窗口执行
echo file not exist!
rem 再次执行当前批处理
call %0
:process
@echo file:"%protoFile%" exist!
@echo generating message,please wait...
@protoc.exe --java_out=../src %protoFile%
@echo generate success!
pause
goto:eof
proto文件,protoc.exe,generateProto.bat放在同一文件夹下,执行generateProto.bat脚本。
done
protoc.exe java_protobuf——使用protoc.exe生成message文件相关推荐
- protoc 命令 java_用proto命令生成java文件
1.下载: https://code.google.com/p/protobuf/downloads/list 下载 protoc-2.5.0-win32,然后解压,配置protoc环境变量 2.cm ...
- protoc文件生成cs文件
1.下载protoc工具 点击下载 2.下载解压后打开文件,其中有一个.bat文件,里面对应命令行如下: 编写如下命令行 protoc.exe -I=. --csharp_out=. --grpc_ ...
- VS2013打包生成安装文件setup.exe(详细图解)
在项目完成需要演示时一般我们不方便给客户源码时,需要打包制作安装文件setup.exe发布,通常我们可以使用inno setup制作安装包,但是也可以用VS2013自带的安装和部署向导,下面是安装步骤 ...
- 10. 利用vs2017中的lib.exe把def文件生成lib文件
1.首先找到你的vs文件所在文件夹 2.然后找到找到lib.exe所在的位置 我的位置是在 D:\Program Files (x86)\Microsoft Visual Studio\2017\Co ...
- protoc 命令生成java文件时报错解决方案
当使用protoc --java_out=./ running_conditions.proto命令通过proto协议文件生成java文件报错如下时 running_conditions.proto: ...
- 修改matlab 生成exe的图标,更改matlab生成exe文件的图标
更改matlab生成exe文件的图标 明天项目答辩,今天又把程序折腾了一遍,最后生成exe文件,上网搜了一下把图标改成了自己选的图形. 在matlab中文论坛上有高手指出如下的做法: 假设你的图标文件 ...
- 【Android Protobuf 序列化】Protobuf 使用 ( protoc 编译器简介 | 下载 protoc 编译器 | 使用 protoc 编译器编译 .proto 源文件 )
文章目录 一.protoc 编译器简介 二.下载 protoc 编译器 三.使用 protoc 编译器编译 addressbook.proto 源文件 四.参考资料 一.protoc 编译器简介 在上 ...
- python打包exe报错编码问题_python打包成exe,但执行exe报错,求解。
1.pycharm pycharm-professional-2018.1.4.exe 已安装 64位的. 2.python python-3.7.0.exe 已安装32 ...
- Arp病毒(motou.exe,smss.com,smss.exe)解决方案
smss.com,smss.exe 文件名称:motou.exe 文件大小:335106 byte AV命名: Win32.Hack.ChatARP.y.372212 金山 Dropper.Win32 ...
最新文章
- MEMS传感器的未来在哪?
- sql注入_1-7_绕过注入
- [转帖]经典好文!看完后感到很震撼!
- 小程序 坚屏_如何构建坚如磐石的应用程序
- 轻松访问 Android 系统源码与下载
- 17. 框架标签及其应用实例
- python 登陆微博 被删除 token_爬取微博信息,使用了cookie仍然无法登录微博
- Spring官方推荐的@Transactional还能导致生产事故?
- Vue 动态数据滚动
- NodeJs 多核多进程并行框架实作 - CNode
- ElasticSearch7.8.0下载与安装
- 新颖的计算机科学与技术毕业设计题目
- VCRedist.exe静默安装方法(转)
- 科研实习 | 清华大学交叉信息研究院弋力老师招收三维视觉科研实习生
- 大学c语言机试是老师阅卷么,最近,我们找了一些老师聊了聊
- 论文阅读:A Novel Graph based Trajectory Predictor with Pseudo Oracle
- JAVA8 Stream的系列操作,Optional使用---- java养成
- 计算机系统维护是干嘛,计算机系统维护是什么
- 【Markdown】使用简记
- 路由算法与收敛路由原理