protocol .proto文件转.java文件

本文介绍如何将Protocol Buffers(protobuf)的.proto文件转换为Java源代码,以便在Java项目中使用。首先,你需要安装Protocol Buffer编译器protoc。然后,使用protoc命令行工具,指定.proto文件和输出目录,即可生成对应的.java文件。这个过程对于理解protobuf数据序列化和在Java应用中集成protobuf至关重要。
摘要由CSDN通过智能技术生成
1.创建maven项目
        创建proto文件夹
        详情请百度

2.创建pom.xml
        写法请百度

3.创建.proto文件
        写法看官方文档,或者笔记的: Protobuf在Java项目中的使用

以上步骤或者可以:
      下载fabric-sdk-java(如果只下载这一个不行,就下载上protobuf )

4.生成java实体类的命令
4.1在cmd中进入(或者 fabric-sdk-java) 到.proto文件所在得目录
       输入 protoc helloworld.proto --java_out=./
        ./ 的意思是输出到当前目录
如果上面的命令报错,显示timestamp.proto找不到,就用下面的命令
4.2或者
   
   
  1. C:\Users\Luo_xuri\Desktop\fabric-sdk-java-master\src\main\proto\peer>    // cd到某目录下
  2. protoc                                                                    // protoc
  3. -I=. -I=                                                                 // 注意-前面的空格
  4. C:\Users\Luo_xuri\Desktop\protobuf-3.1.x\src\                             // 指向protobuf的src,找到timestamp.proto
  5. proposal_response.proto --java_out=./                                    // 将这个.protoc文件输出到当前目录(注意前面的空格)
或者将timestamp.proto文件copy到proto文件里面,修改.protoc文件中的import,也就是下面的5

5.如果执行4.1之后出现
   
   
  1. google/protobuf/timestamp.proto: File not found.
  2. common/common.proto: Import "google/protobuf/timestamp.proto" was not found or had errors.
  3. common/common.proto:86:5: "google.protobuf.Timestamp" is not defined.
  4. configtx.proto: Import "common/common.proto" was not found or had errors.
  5. configtx.proto:53:5: "Envelope" is not defined.
  6. configtx.proto:69:5: "ChannelHeader" is not defined.
  7. configtx.proto:88:5: "ChannelHeader" is not defined.
这些类似的问题都是因为.proto文件中的import找不到路径,可以像以下那么修改
    一开始是下面这样
    
    
  1. import "google/protobuf/timestamp.proto";
    改为:
    将timestamp.proto文件copy到项目的proto文件下
    然后从之前的就变成这样了:
    
    
  1. import "timestamp.proto";
再执行4.2中的“ 或者 ”方法,当然其中的-I=的路径也要指到timestamp.proto所在目录

6.根据插件(protoc-gen-grpc-java.exe)生产grpc类的命令
   
   
  1. C:\Users\Luo_xuri\Desktop\fabric-master\protos>
  2. protoc --plugin=protoc-gen-grpc-java=D:\develop\protoc-gen-grpc-Java\protoc-gen-grpc-java.exe        //指向生产grpc代码的插件
  3. --grpc-java_out=C:\Users\Luo_xuri\Desktop\build\                                                    //注意前面的空格,代码输出到的路径
  4. common\*.proto                                                                                      //proto文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值