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文件相关推荐

  1. protoc 命令 java_用proto命令生成java文件

    1.下载: https://code.google.com/p/protobuf/downloads/list 下载 protoc-2.5.0-win32,然后解压,配置protoc环境变量 2.cm ...

  2. protoc文件生成cs文件

    1.下载protoc工具  点击下载 2.下载解压后打开文件,其中有一个.bat文件,里面对应命令行如下: 编写如下命令行 protoc.exe -I=. --csharp_out=. --grpc_ ...

  3. VS2013打包生成安装文件setup.exe(详细图解)

    在项目完成需要演示时一般我们不方便给客户源码时,需要打包制作安装文件setup.exe发布,通常我们可以使用inno setup制作安装包,但是也可以用VS2013自带的安装和部署向导,下面是安装步骤 ...

  4. 10. 利用vs2017中的lib.exe把def文件生成lib文件

    1.首先找到你的vs文件所在文件夹 2.然后找到找到lib.exe所在的位置 我的位置是在 D:\Program Files (x86)\Microsoft Visual Studio\2017\Co ...

  5. protoc 命令生成java文件时报错解决方案

    当使用protoc --java_out=./ running_conditions.proto命令通过proto协议文件生成java文件报错如下时 running_conditions.proto: ...

  6. 修改matlab 生成exe的图标,更改matlab生成exe文件的图标

    更改matlab生成exe文件的图标 明天项目答辩,今天又把程序折腾了一遍,最后生成exe文件,上网搜了一下把图标改成了自己选的图形. 在matlab中文论坛上有高手指出如下的做法: 假设你的图标文件 ...

  7. 【Android Protobuf 序列化】Protobuf 使用 ( protoc 编译器简介 | 下载 protoc 编译器 | 使用 protoc 编译器编译 .proto 源文件 )

    文章目录 一.protoc 编译器简介 二.下载 protoc 编译器 三.使用 protoc 编译器编译 addressbook.proto 源文件 四.参考资料 一.protoc 编译器简介 在上 ...

  8. python打包exe报错编码问题_python打包成exe,但执行exe报错,求解。

    1.pycharm     pycharm-professional-2018.1.4.exe    已安装 64位的. 2.python       python-3.7.0.exe   已安装32 ...

  9. Arp病毒(motou.exe,smss.com,smss.exe)解决方案

    smss.com,smss.exe 文件名称:motou.exe 文件大小:335106 byte AV命名: Win32.Hack.ChatARP.y.372212 金山 Dropper.Win32 ...

最新文章

  1. MEMS传感器的未来在哪?
  2. sql注入_1-7_绕过注入
  3. [转帖]经典好文!看完后感到很震撼!
  4. 小程序 坚屏_如何构建坚如磐石的应用程序
  5. 轻松访问 Android 系统源码与下载
  6. 17. 框架标签及其应用实例
  7. python 登陆微博 被删除 token_爬取微博信息,使用了cookie仍然无法登录微博
  8. Spring官方推荐的@Transactional还能导致生产事故?
  9. Vue 动态数据滚动
  10. NodeJs 多核多进程并行框架实作 - CNode
  11. ElasticSearch7.8.0下载与安装
  12. 新颖的计算机科学与技术毕业设计题目
  13. VCRedist.exe静默安装方法(转)
  14. 科研实习 | 清华大学交叉信息研究院弋力老师招收三维视觉科研实习生
  15. 大学c语言机试是老师阅卷么,最近,我们找了一些老师聊了聊
  16. 论文阅读:A Novel Graph based Trajectory Predictor with Pseudo Oracle
  17. JAVA8 Stream的系列操作,Optional使用---- java养成
  18. 计算机系统维护是干嘛,计算机系统维护是什么
  19. 【Markdown】使用简记
  20. 路由算法与收敛路由原理

热门文章

  1. Linkify介绍 编辑textview超链接
  2. vmware安装ubuntu的一些成功技巧
  3. ACE反应器(Reactor)模式
  4. 初学C++正则表达式(regex)
  5. 高速缓存系统之redis c++使用实例
  6. 【机器学习入门笔记10:TensorFlow矩阵基础】20190217
  7. python数据库操作之pymysql模块和sqlalchemy模块(项目必备)
  8. Spring Cloud构建微服务架构:服务消费(基础)
  9. 投资者建议三星电子一分为二 股价创历史新高
  10. mysql查询字符串出现次数