Protobuf简单安装使用(Java)

protobuf安装教程 🚀最后一步,如果在执行configure时选择的第一种形式,那么你现在就能使用protobuf了。可以看到protobuf是支持多语言的,如果你是C++用户直接下载-cpp即可,java等类似。(1)将protobuf默认安装在 /usr/local 目录下,但是lib和bin是分散的。1.第一步执行autogen.sh,但如果下载的是具体的某一门语言,不需要这一步。(2)修改安装目录,统一安装在 /usr/local/protobuf下。🚀修改配置文件后别忘了,让配置文件生效!上图,这样代表安装成功。 阅读详情

一、protobuf安装 (ubuntu 翻墙条件下)

$ sudo su
$ sudo apt-get install autoconf automake libtool curl
$ git clone https://github.com/google/protobuf
$ cd protobuf
$ ./autogen
$ ./configure --prefix=/usr
$ make
$ make check
$ sudo make install
$ sudo ldconfig 

(./configure --prefix 会把protobuf安装到对应目录下,可以先建好文件夹避免内容混乱)


二、安装后续

sudo vim /etc/profile
 添加
export PATH=$PATH:/usr/bin/     (路径根据上面configure --prefix 来确定)
export PKG_CONFIG_PATH=/usr/lib/pkgconfig/
保存执行
source /etc/profile

同时 在~/.profile中添加上面两行代码,否则会出现登录用户找不到protoc命令

3 > 配置动态链接库路径
sudo vim /etc/ld.so.conf
插入:

/usr/lib

(以上路径都要根据之前安装的路径来写)

4 > sudo ldconfig

三、使用

①maven项目

在pom.xml中添加如下依赖
<dependency>
 <groupId>com.google.protobuf</groupId>
 <artifactId>protobuf-java</artifactId>
 <version>3.5.1</version>
</dependency>

②proto文件

 Protobuf消息定义
消息由至少一个字段组合而成,类似于C语言中的结构。每个字段都有一定的格式。
字段格式:限定修饰符① | 数据类型② | 字段名称③ | = | 字段编码值④ | [字段默认值⑤]

.proto类型                         Java 类型
double                                 double
float                                        float
sint32                                      int
sint64                                     long
bool                                      boolean
string                                      String

限定修饰符包含 {
    required: 必填字段
    optional: 可选字段
    repeated:数组集合字段

}

写一个test.proto文件,放到项目目录

syntax="proto2";
package tutorial;

option java_package = "com.czw.model";
option java_outer_classname = "AddressBookProtos";

message Person {
  required string name = 1;
  required int32 id = 2;
  optional string email = 3;

  enum PhoneType {
    MOBILE = 0;
    HOME = 1;
    WORK = 2;
  }

  message PhoneNumber {
    required string number = 1;
    optional PhoneType type = 2 [default = HOME];
  }

  repeated PhoneNumber phone = 4;
}

message AddressBook {
  repeated Person person = 1;
}
然后切换到项目的src/main/java目录   命令框输入

protoc --java_out=./  test.proto

即可生成对应的AddressBookProtos.java 文件


③测试

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import com.czw.model.AddressBookProtos;
import com.czw.model.AddressBookProtos.*;

public class test1 {
    public static void main(String[] args) throws IOException{
        test1 demo=new test1();
        demo.serialize();
        System.out.println("serialize to disk success!!");
        System.out.println("start deserialize......");
        demo.deserialize();


    }

    public static void Print(AddressBookProtos.AddressBook addressBook) {
        for (Person person: addressBook.getPersonList()) {
            System.out.println("Person ID: " + person.getId());
            System.out.println("  Name: " + person.getName());
            if (person.hasEmail()) {
                System.out.println("  E-mail address: " + person.getEmail());
            }

            for (Person.PhoneNumber phoneNumber : person.getPhoneList()) {
                switch (phoneNumber.getType()) {
                    case MOBILE:
                        System.out.print("  Mobile phone #: ");
                        break;
                    case HOME:
                        System.out.print("  Home phone #: ");
                        break;
                    case WORK:
                        System.out.print("  Work phone #: ");
                        break;
                }
                System.out.println(phoneNumber.getNumber());
            }
        }
    }

    public void serialize() throws IOException {
        //build message
        Person john =
                Person.newBuilder()
                        .setId(3330)
                        .setName("Barry")
                        .setEmail("BarryAllen@flash.com")
                        .addPhone(
                                Person.PhoneNumber.newBuilder()
                                        .setNumber("123-4567")
                                        .setType(Person.PhoneType.HOME))
                        .build();

        AddressBook.Builder addressBook = AddressBook.newBuilder();
        addressBook.addPerson(john);

        //serialize to disk
        FileOutputStream output = new FileOutputStream("addressbook.pbd");
        addressBook.build().writeTo(output);
        output.close();
    }
    public void deserialize() throws FileNotFoundException, IOException{
        AddressBook addressBook =
                AddressBook.parseFrom(new FileInputStream("addressbook.pbd"));
        Print(addressBook);
    }

}


IntelliJ IDEA基于Maven的Protobuf for Java安装及使用全过程 公司的所有新项目全部转型Java,无奈只能搁置伴随自已8年之久的.NET,开始逐渐了解Java的开发,以方便自己后续的工作(主要是不被兄弟们忽悠)。在同事的强烈推荐中,选择了IntelliJ IDEA作为自己的Java IDE。最近在了解ProtoBuf的编码技术,遂开始在IntelliJ IDEA下配置ProtoBuf的开发环境。在结合Baidu和Google,都只是零碎的介绍或者Ctrl+C,... 阅读详情

相关推荐

protobuf-win环境搭建

下载protoc.exe 和 protobuf-java.jar 下载protoc.exe 和 protobuf-java-2.5.0.jar

java中使用protobuf总结

java中读写protobuf

hsy12342611的专栏 3631

protobuf-java-3.25.0.jar中文-英文对照文档.zip

1、压缩文件中包含: 中文-英文对照文档、jar包下载地址、Maven依赖、Gradle依赖、源代码下载地址。 2、使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 3、特殊说明: (1)本文档为人性化翻译,精心制作,请放心使用; (2)只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; (3)不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 4、温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件。 5、本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册。

序列化工具Protobuf在Idea中的配置和在java中的使用实例

序列化和反序列化工具Protobuf在idea中的安装和具体的使用示例

wjs040的博客 5267

protobuf-java-3.24.4.jar中文文档.zip

1、压缩文件中包含: 中文文档、jar包下载地址、Maven依赖、Gradle依赖、源代码下载地址。 2、使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 3、特殊说明: (1)本文档为人性化翻译,精心制作,请放心使用; (2)只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; (3)不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 4、温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件。 5、本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册。

从GWAS到单细胞:利用seismic包精准定位疾病相关的关键细胞亚群与驱动基因

本文详细介绍了如何利用seismic包将GWAS与单细胞测序数据结合,精准定位疾病相关的核心细胞亚群与驱动基因。通过创新的统计算法和实战案例,帮助研究者从遗传汇总数据中挖掘关键生物学机制,提升疾病研究的精准度和效率。

weixin_29215815的博客 441

Java 中使用 protobuf :入门基础篇,看这篇就够了!

protobuf

m0_37695902的博客 1万+

【VS Code+Verilog+Vivado使用】(1)常用插件

VS Code + Verilog + Vivado联合使用说明

XDUryan的博客 5637

protobuf的Java版安装方式

1,安装maven a.下载apache-maven-3.2.5,链接:http://mirrors.hust.edu.cn/apache//maven/maven-3/3.2.5/binaries/ b.解压到指定目录:(我使用的目录为)/Users/zhoufei/Documents/Tools/apache-maven-3.2.5 c.打开终端,配置环境变量: vi ~/.bash_prof...

wyqwilliam的博客 2085

海思Hi3516CV610--SPI NAND Flash移植实战:从手册到驱动的完整适配

本文详细介绍了海思Hi3516CV610芯片上SPI NAND Flash的移植实战,包括从手册解读到驱动适配的完整流程。以GD5F2GM7UEYIGR Flash为例,重点讲解了关键参数确认、模式选择、时序配置以及U-Boot和Linux内核驱动的具体实现步骤,帮助开发者快速完成Flash移植工作。

weixin_29158413的博客 447

如何产生ATPG IR-drop分析波形文件(DFT)

摘要:本文介绍了生成VCD波形的流程与要求,主要用于后端进行IR-drop分析。生成过程分为ATPG shift和speed ATPG capture两部分,分别对应不同的输入要求、模式设置和仿真参数。

murphyrong的博客 871

java protobuf mac 安装_Mac下安装protobuf以及简单使用

1.安装brew install protobuf2.查看安装版本➜ protobuf git:(dev) ✗ protoc --versionlibprotoc 3.4.0➜ protobuf git:(dev) ✗3.生成Prtobuf文件➜ java git:(dev) ✗ protoc --java_out=./ com/test/frame/zookeeper/protobuf/S...

weixin_29094301的博客 390

3dMax效率翻倍!用Octopus章鱼插件打造你的专属快捷菜单(附MaxScript入门指南)

本文详细介绍了如何利用Octopus插件和MaxScript脚本在3dMax中打造高效快捷菜单,显著提升三维建模与动画制作的工作效率。通过饼状菜单系统、自动化宏录制和脚本控制,用户可实现个性化工作流,节省大量操作时间。文章还提供了MaxScript入门指南,帮助开发者快速掌握这一强大工具。

weixin_30920853的博客 152

java protobuf mac 安装_Mac安装Protobuf编译Java

本文整理了再在Mac上安装Protobuf 和编译Java的详细过程在Mac上安装protobuf创建一个java项目,编写.proto文件用protobuf编译生成java文件,测试用wire编译生成java文件,测试1.protobuf下载地址:https://github.com/google/protobuf/tags?after=v3.0.0-alpha-1Github:https://...

weixin_31310737的博客 437

NLP实战:如何用CoNLL-2003数据集快速提升命名实体识别模型性能(附完整代码)

本文详细介绍了如何利用CoNLL-2003公开数据集,通过深度剖析数据特点、构建鲁棒的数据预处理流水线、选择合适的模型架构(如BERT-CRF)以及优化训练策略,来系统性地提升命名实体识别(NER)模型的性能。文章提供了完整的代码示例,并分享了处理数据不均衡、标签对齐等核心挑战的实战技巧,帮助读者从理论到实践全面掌握NER任务。

cola5的博客 494

Orange3实战教程:文本挖掘---主题建模

主题建模通过LDA、LSI或HDP算法分析文档集合,自动发现隐含主题结构。组件输入为文档语料库,输出包括带主题权重的语料库、主题词分布及完整主题数据。不同算法特性各异:LSI允许正负权重但解释性较弱,LDA更易解释,HDP参数复杂需谨慎设置。结果可结合词云、热力图等可视化工具分析主题特征及分布。示例显示如何通过预处理文本、选择算法(如提取5个LDA主题),并利用MDS和箱线图探索主题间关系及关键词分布。

err2008的专栏 365

mac protobuf java_Mac安装Protobuf编译Java

本文整理了再在Mac上安装Protobuf 和编译Java的详细过程在Mac上安装protobuf创建一个java项目,编写.proto文件用protobuf编译生成java文件,测试用wire编译生成java文件,测试1.protobuf下载地址:https://github.com/google/protobuf/tags?after=v3.0.0-alpha-1Github:https://...

weixin_35130561的博客 258

【深度学习新浪潮】算力行业的核心技术有哪些?

算力行业核心技术是芯片+互联+存储+调度+能效+软件的全栈协同:芯片提供算力、互联打通集群、存储保障数据、调度提升效率、能效支撑规模、软件释放算力。当前AI大模型推动算力从“单机”走向“万卡级超节点集群”,技术竞争从单一芯片升级为系统级、全栈化的综合能力。

专注:太空算力、AI infra、异构调度、大模型成本工程 339

Mac安装Protobuf编译Java

本文整理了再在Mac上安装Protobuf 和编译Java的详细过程 在Mac上安装protobuf创建一个java项目,编写.proto文件用protobuf编译生成java文件,测试用wire编译生成java文件,测试 1.protobuf下载地址:https://github.com/google/protobuf/tags?after=v3.0.0-alpha-1 Git

顾明伟 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

protobuf java 下载_Protobuf java版本安装步骤

1,安装mavena.下载apache-maven-3.2.5,链接:http://mirrors.hust.edu.cn/apache//maven/maven-3/3.2.5/binaries/b.解压到指定目录:(我使用的目录为)/Users/zhoufei/Documents/Tools/apache-maven-3.2.5c.打开终端,配置环境变量:vi ~/.bash_profileM...

weixin_29071809的博客 460

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Protobuf 3.8.0 for Java 基于Windows的安装及使用

Step 1: 下载protobuf github站点 https://github.com/protocolbuffers/protobuf 根据提示到releases(https://github.com/protocolbuffers/protobuf/releases)下下载 https://github.com/protocolbuffers/protobuf/releases/down...

gthunder的博客 1204

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

JAVA ProtoBuf 在window安装

安装环境 官方网址:https://github.com/protocolbuffers/protobuf/releases 选择最下面的 protoc-3.6.1-win32.zip 解压后把bin目录配置到Path环境 打开cmd输入 protobuf --version 有显示说明成功 输入 protobuf --help 可查看命名,我们要的就是这个命令,把.proto文件转换为ja...

weixin_43075703的博客 993

mac 中的 protobuf 安装编译 Java

protobuf 安装编译 java

深页 904

mac protobuf java_Mac安装Protobuf 3.14.0

1、Pom依赖:com.google.protobufprotobuf-java3.14.02、GitHub下载:image.png3、解压image.png4、安装4.1 进入目录cd protobuf-3.14.0/4.2 设置编译目录./configure --prefix=/usr/local/protobufimage.png4.3 切换到root用户sudo -i4.4 安装makem...

weixin_39963287的博客 463
上一篇: Jackson实现Java对象与JSON的相互转换
下一篇: Ubuntu安装FFmpeg
JumpFly_W
博客等级 码龄17年 72粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值