Ubuntu16.04安装ptotobuf&Java Demo

本文介绍如何安装Protobuf并使用Java进行消息定义及序列化操作。详细步骤包括下载、配置、安装以及验证版本等,并通过一个Maven项目的实例演示了如何在Java中生成并使用Protobuf消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

protobuf 安装

下载protobuf 源码,可以选择不同的版本本人选择的3.3.0版本
https://github.com/google/protobuf/releases/tag/
解压文件,并进入protobuf目录,会发现autogen.sh文件。
执行./autogen.sh 生成configure文件
如果出现错误信息可能是因为缺少C++ lib包导致,则进行相关的错误信息查询和安装即可。
之后分别执行以下命令进行安装

./configure
./make
./make check
./make install

注意:configure 时可以指定安装位置,若没有指明,默认安装在/usr/local/lib下面。

安装完成之后,进行检查

protoc --version 

若出现proto版本号则安装成功!

Java demo

idea 建立maven工程

pom.xml

<dependencies>
        <dependency>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java</artifactId>
            <version>3.3.0</version>
        </dependency>
    </dependencies>

MessageProto.proto文件内容

package proto;
option java_package="com.protobuf.bean";
option java_outer_classname="MessageProto";

message Message{
   required int64 id =1;
   required string title=2;
   required string content=3;

   enum Type{
     SUPER=0;
     COMMON=1;
   }
   required Type type=4;
}

生成java文件

protoc --java_out=../java/ ./MessageProto.proto

–java_out=../java/ 代表生成的java文件所放位置
后面的路径是proto文件位置
更多protoc命令请自行网上查询。

测试类

将生成的代码拷贝进工程,编写测试main函数


import com.protobuf.bean.MessageProto;

/**
 * Created by hadoop on 17-7-15.
 */
public class MessageProtoTest {

    public static void main(String[]args){
        MessageProto.Message.Builder builder = MessageProto.Message.newBuilder();
        builder.setContent("message content ....");
        builder.setId(1001);
        builder.setTitle("title 1");
        builder.setType(MessageProto.Message.Type.SUPER);
        System.out.println("original message is : "+builder.build());
        byte[]data = builder.build().toByteArray();
        try{
            MessageProto.Message cloneMes = MessageProto.Message.parseFrom(data);
            System.out.println("clone message is : "+cloneMes);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

输出结果如下:

original message is : id: 1001
title: "title 1"
content: "message content ...."
type: SUPER

clone message is : id: 1001
title: "title 1"
content: "message content ...."
type: SUPER


Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值