Window下Protobuf Java使用教程

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

        Protobuf是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。

一、环境搭建

Google提供了ProtoBuf编译器,可以将配置文件,编译生成代码类。

去Github下载源码:https://github.com/google/protobuf

由于是Window环境,需要下载编译器protoc-3.5.1-win32.zip

将从Github下载的源码protobuf-master.zip解压,我放到了D:\tools\protobuf\protobuf-master目录

然后protoc-3.5.1-win32.zip解压,将bin目录下面的protoc.exe放到D:\tools\protobuf\protobuf-master目录下面的src目录。

此时protoc.exe路径为D:\tools\protobuf\protobuf-master\src\protoc.exe

二、新建Intelidea Java项目

新建Intelidea Java项目,在build.gradle添加依赖,由于使用的protoc.exe是3.5.1版本,protobuf-java使用3.5.1版本。
// https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java
compile group: 'com.google.protobuf', name: 'protobuf-java', version: '3.5.1'

三、新建test.proto文件

如何编写.proto文件,请参看这篇文章:Protocol Buffers序列化协议及应用
option java_outer_classname = "PersonEntity";//生成的数据访问类的类名  
message Person {  
  required int32 id = 1;//同上  
  required string name = 2;//必须字段,在后面的使用中必须为该段设置值  
  optional string email = 3;//可选字段,在后面的使用中可以自由决定是否为该字段设置值
}  

将生成的test.proto文件,放到工程的目录下面


四、编译生成java类

使用Runtime运行命令,来生成java代码。

命令格式如下:protoc.exe -I=proto的输入目录 --java_out=java类输出目录 proto的输入目录包括包括proto文件

import java.io.IOException;

/**
 * Created by wzj on 2018/5/8.
 */
public class ExecProtobuf
{
    public static void main(String[] args) throws IOException
    {
        String strCmd = "D:\\tools\\protobuf\\protobuf-master\\src\\protoc.exe " +
                " -I=H:\\JAVA\\protobuf " +
                " --java_out=./src/main/java " +
                " H:\\JAVA\\protobuf\\test.proto";

        Runtime.getRuntime().exec(strCmd);
    }
}

执行上面代码会发现,在java目录下面生成了PersonEntity.java类

五、测试

新建ProtobufTest.java类

import java.io.IOException;

/**
 * Created by wzj on 2018/5/8.
 */
public class ProtobufTest
{
    public static void main(String[] args) throws IOException
    {
        //模拟将对象转成byte[],方便传输
        PersonEntity.Person.Builder builder = PersonEntity.Person.newBuilder();
        builder.setId(3);
        builder.setName("zhangsan");
        builder.setEmail("test@qq.com");
        PersonEntity.Person person = builder.build();
        System.out.println("before :" + person.toString());

        System.out.println("===========Person Byte==========");
        for (byte b : person.toByteArray())
        {
            System.out.print(b);
        }
        System.out.println();
        System.out.println(person.toByteString());
        System.out.println("================================");

        //模拟接收Byte[],反序列化成Person类
        byte[] byteArray = person.toByteArray();
        PersonEntity.Person p2 = PersonEntity.Person.parseFrom(byteArray);
        System.out.println("after :" + p2.toString());
    }
}

执行之后,输出如下:


参考教程:

https://worktile.com/tech/share/prototol-buffers

windows下安装和配置protobuf流程 1.下载protobuf 到https://github.com/protocolbuffers/protobuf/releases下载对应的安装包 这里以3.8.0版本为例 下载完成后解压到D盘 2.配置protobuf环境变量 接下来开始配置环境变量,右键此电脑,点击属性。 点击高级系统设置 在弹出的对话框中点击环境变量 点击新建,输入变量名以及protobuf的安装路径后点击确定 变量名:PROTOBUF_HOME 变量值:D:\protoc-3.8.0-win64\bin 找到系统变量中 阅读详情

相关推荐

Windows下VC++使用protobuf

Protocol Buffers(protobuf)是Google提供的一个开源序列化框架,类似XML,JSON,其最大的特点是基于二进制,比传统的XML表示同样一段内容要短小得多。虽然是二进制数据格式,但并没有因此变得复杂,开发人员通过按照一定的语法定义结构化的消息格式,然后送给命令行工具,工具将自动生成相关的类,可以支持c++、java、python等语言环境。文章将说明如何在windows下VC++使用protobuf

没有开花的树 7058

序列化、反序列化原理和Protobuf实现机制

(1)Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程;(2)

长沙老码农 8514

Windows下完整安装配置protobuf 3.15教程及示例程序

Windows下完整安装配置protobuf 3.15教程及示例程序 1、概述 由于工作的需要,现在需要在不同平台和语言使用谷歌的序列化工具protobuf来封装数据。浏览了网上的很多教程,都不太完善,所以萌生了自己结合各家所长整理出Windows下最全的安装教程供大家参考。 2、protobuf下载 下载protobuf有许多途径,可以在谷歌的网上下载,也可以在Github中进行下载,两个连接分别如下: github下载地址 谷歌下载地址 3、安装protobuf (1)下载软件,我下载的是protobu

qq_15480389的博客 4190

Protobuf详解

Protobuf(Google Protocol Buffers),官方文档对 protobuf 的定义:protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,可用于数据通信协议和数据存储等,它是 Google 提供的一个具有高效协议数据交换格式工具库,是一种灵活、高效和自动化机制的结构数据序列化方法。因此,您可以根据自己的设计需求定义专属于您的标记。7.实践应用:通过实际应用案例来巩固您对 Protocol Buffers 的理解,并使用其提供的优势简化您的代码。

xtho62的博客 4343

Protobuf的使用

在网站http://mvnrepository.com/artifact/com.google.protobuf/protobuf-java/3.4.0下载Jar包,在网站https://github.com/google/protobuf/releases下载工具,选择windows版本, 解压protoc-3.4.0-win32.zip并设置环境变量,在系统变量Path中添加protoc...

数据之道 2962

protobuf-win

使用可以参照http://blog.sina.com.cn/s/blog_653ac36d0101h9kn.html

protobuf入门实践1

protobuf入门实践1

godaa的博客 270

TBOX(Telematics Box)在智能网联汽车中的核心功能与应用场景解析

TBOX(Telematics Box)是智能网联汽车的“中枢神经”,基于Android或Linux操作系统,并通过CAN总线与车辆深度交互。它实现了远程控制、车辆状态监控、OTA升级及紧急呼叫(E-CALL)等核心功能,是提升用车安全、便利性与实现车辆持续进化的关键技术组件。

weixin_29158413的博客 804

java(Android):windows系统 ProtoBuf(3.1.0)编译及使用

一、ProtoBuf编译出jar文件 1. 从http://maven.apache.org/download.cgi下载apache-maven-3.3.9-bin.zip,解压至D:\AndroidDevelop目录。 配置环境变量: MAVEN_HOME:D:\AndroidDevelop\apache-maven-3.3.9; Path=%MAVEN_HOM

过期的码农 698

《嵌入式最全面试题-Offer直通车》目录

嵌入式领域蓬勃发展,嵌入式工程师成为众多科技企业争抢的热门人才。如果你渴望在嵌入式面试中脱颖而出,成功斩获心仪的 offer,那么《嵌入式最全面试题 - Offer直通车》将是你的绝佳选择。本专栏是优快云是热门专栏,100多篇文章,总字数过百万。每月新增订阅用户过百,现在是优惠价9.9元,后面要逐渐恢复原价,早订阅早受益。本专栏精心整理了众多超万字的精华内容,总计达数十万字的嵌入式面试题总结。涵盖从嵌入式基础知识到各大厂面试真题,从驱动开发到操作系统,从硬件到软件等各个方面。

大模型大数据攻城狮的专栏 8402

【WRF-Chem第二期】WRF-Chem有关 namelist 详解

【WRF-Chem第二期】WRF-Chem有关 namelist 详解

WW、forever的博客 2157

protobuf windows java_在windows上使用protobuf

一、下载protoc.exe二、下载protoc-gen-grpc-java-1.28.1-windows-x86_64.exe三、编写helloworld.proto文件内容:syntax = "proto3";option java_multiple_files = true;option java_package = "com.yuhang.protobuf";option java_out...

weixin_39644750的博客 234

使用LSTM进行多任务学习:共享模型预测多个目标

多任务学习是一种机器学习方法,旨在通过同时学习多个相关任务来提高模型的学习效率和泛化能力。MTL的核心思想是共享模型的参数,从而在不同任务之间捕捉到共享的特征。长短期记忆网络(LSTM)是循环神经网络(RNN)的一种改进版本,专门用于解决传统RNN在处理长序列时出现的梯度消失和梯度爆炸问题。LSTM通过引入多个门控机制(输入门、遗忘门和输出门)来控制信息的流动。本文详细探讨了如何使用LSTM进行多任务学习。我们介绍了多任务学习的理论基础、LSTM的特点,以及如何构建和训练一个多任务LSTM模型。

斌擎科技 1153

Window下Protobuf Java使用教程(根据proto文件)

这里写目录标题下载安装包环境配置生成Java代码生成结果图展示 下载安装包 到https://github.com/google/protobuf/releases/tag/v3.1.0下载 protoc-3.1.0-win32.zip,解压到任意地方 环境配置 将D:\protoc-3.1.0-win32\bin目录添加到系统环境变量Path中,打开cmd,输入protoc ––version,显示Protocol Buffers的版本表示安装成功,这里有一点就是version之前是两个–符号。 生成

但行好事,莫问前程 298

15 君正IPC库开发总结

在前面的章节中,我们介绍了君正ISP、视频采集、音频采集、音频播放、云台电机、移动侦测算法、人形侦测算法、移动跟踪算法等的封装。那么,应用层如何使用这些封装好的接口呢?根据设计模式中的依赖倒置原则:高层次的模块不应该依赖于低层次的模块,它们都应该依赖于抽象。因此,应用层应当只能感知到我们封装的接口类,而不应当感知到其对应的具体实现类。

hope_wisdom的技术博客 1662

华为OD机考2025C卷 - 精准核酸检测(Java & Python& JS & C++ & C语言)

华为OD机考2025C卷 - 精准核酸检测,提供在线OJ Java & Python& JS & C++ & C

算法大师! 2882

java 序列化 protobuf_在Java中使用protobuf序列化对象

什么是protobuf它是一个对象序列化/反序列化的工具,什么是对象的序列化/反序列化?就是把一个Java堆中存活的对象转换成一串二进制编码,然后该编码可以用于本地存储和网络传输。反序列化就是根据一串二进制编码还原出原来的那个对象,protobuf能够将一个对象以特定的格式转换为一个二进制串(序列化),然后将二进制串还原成对象(反序列化)。这里涉及到两个指标:对同一个目标对象:1)序列化和反序列化...

weixin_36344678的博客 1836

2026 MCM Problem A:智能手机电池连续时间建模——完整解题思路附第一问解题代码

摘要:本文针对2026年MCM A题"智能手机电池连续时间建模"问题,提出基于能量守恒原理的微分方程模型。通过建立以SOC(t)为状态变量的动态系统,将屏幕亮度、处理器负载等主要耗电因素纳入统一功率框架,实现了不同使用场景下的电量变化精确描述。研究表明,屏幕亮度和CPU负载对续航时间影响最大,温度与后台任务会产生放大效应。该模型具有物理可解释性和应用扩展性,为手机电源管理提供了理论依据。(150字)

一键难忘的博客 771

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

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

window中使用protobuf生成java类

1、下载地址:https://github.com/protocolbuffers/protobuf/releases/tag/v3.7.1 2、解压后放置到D盘的安装目录,配置环境变量Path:D:\Program Files\protoc-3.7.1-win64\bin 3、编写一个Stu.proto,保存到E盘的protobuf文件夹下 syntax = "proto3"; // 生成的包名...

lu_huang的博客 2194

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Protobuf 认识和使用(window版)

Protobuf 认识和使用(window版)

ChenHT12306的博客 2773

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Window下的protobuf生成java类

1. 新建一个user.proto文件,用记事本打开复制下面内容: syntax = "proto3"; option java_package="com.test.userInfo"; option java_outer_classname = "UserInfo"; message UserMsg { // ID in...

程序员的成长之道 438

protoc.exe java_protobuf java 使用 window

1.到http://code.google.com/p/protobuf/downloads/list,选择其中的win版本下载,我选择的是protoc-2.4.1-win32.zip2.下载一个protobuf-java-2.4.1.jar文件(注意,要与你刚才下的proto.exe版本相同)然后就开始开发了。步骤:1.用记事本编写一个.proto文件:}如:我编写的是test.protopa...

weixin_39561577的博客 383

Windows下使用protobuf

Windows下使用protobuf下载windows下的protbuf配置环境变量使用protobuf生成java类 下载windows下的protbuf 直接去protobuf在github下的连接【下载】。 选择windows下64位 下载后解压即可。 当然了github的资源有可能十分卡,这里提供了我上传的资源,下载连接 配置环境变量 计算机 右键 -》 属性 选择 【高级系统设置】 弹出对话框 选择 【环境变量】 弹出对话框后,找到Path 双击 出现以下对话框,点击 【新建】 输入您解压

david-lee的博客 1915
上一篇: Zookeeper应用场景介绍
下一篇: Spring Cloud基础教程:服务注册与发现(Eureka Server)
dmfrm
博客等级 码龄13年 486粉丝 407原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dmfrm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值