1.到http://code.google.com/p/protobuf/downloads/list ,选择其中的win版本下载,我选择的是protoc-2.4.1-win32.zip

2.下载一个protobuf-java-2.4.1.jar文件(注意,要与你刚才下的proto.exe版本相同)

然后就开始开发了。

步骤:

1.用记事本编写一个.proto文件:

}如:我编写的是test.proto

package protobuf;

option java_package = "com.sq.protobuf";

option java_outer_classname = "FirstProtobuf";

message testBuf  {

required int32 ID = 1;

required string Url = 2;

}

将其放在与刚解压的protoc.exe同级目录中。

2.

在cmd中,到protoc-2.4.1-win32文件夹下,

执行

E:\protoc-2.4.1-win32>protoc.exe --java_out=./ test.proto

则可以找到的一个生成的FirstProtobuf.java文件。

3.

在MyEclipse中新建一个java project,建立包com.sq.protobuf,然后将刚才生成的FirstProtobuf.java文件放在其下面。

此时会报错,因为没有引入jar包,在package视图下,将protobuf-java-2.4.1.jar引入,即可解决问题。

4.

建立测试文件:

package com.sq.protobuf.test;

import java.io.ByteArrayInputStream;

import java.io.InputStream;

import com.google.protobuf.InvalidProtocolBufferException;

import com.sq.protobuf.FirstProtobuf;

public class Test {

public static void main(String[] args) {

//序列化过程

//FirstProtobuf是生成类的名字,即proto文件中的java_outer_classname

//testBuf是里面某个序列的名字,即proto文件中的message testBuf

FirstProtobuf.testBuf.Builder builder=FirstProtobuf.testBuf.newBuilder();

builder.setID(777);

builder.setUrl("shiqi");

//testBuf

FirstProtobuf.testBuf info=builder.build();

byte[] result = info.toByteArray() ;

//反序列化过程

try {

FirstProtobuf.testBuf testBuf = FirstProtobuf.testBuf.parseFrom(result);

System.out.println(testBuf);

} catch (InvalidProtocolBufferException e) {

e.printStackTrace();

}

}

}

发现可以将其序列化,插入到数据库,并可以从数据库出取出后,反序列化,内容可以正常显示出来。

注意的就是2点:

1.不能用statement,否则无法插入blob类型的数据

2.为参数赋值时,要用

ByteArrayInputStream stream =  new ByteArrayInputStream(result);

ps.setBinaryStream(1,stream,stream.available());

protoc.exe java_protobuf java 使用 window相关推荐

  1. protoc.exe java_protobuf——使用protoc.exe生成message文件

    1.下载protoc.exe和对应jar包 protoc.exe从https://github.com/protocolbuffers/protobuf/releases下载protoc-3.7.0- ...

  2. javac.exe 、 java.exe、 javaw.exe 、 javaws.exe有什么区别?

       最近用命令行执行jar包时,碰巧遇到了这个问题,有点感兴趣,查了大量资料之后,简单地写写我自己的总结,以供大家参考.    首先,我先贴上我主要参考的文章 一个是javapapers.com,另 ...

  3. java exe jdk_javac.exe 和java.exe两个可执行程序放在JDK安装目录的( )目录下。_学小易找答案...

    [填空题]跳转语句包括 . . 和 [填空题]创建包时需要使用关键字 . [单选题]假设 a 是 int 类型的变量,并初始化为 1 ,则下列( )是合法的条件语句? [单选题]有一个类 B ,下面为 ...

  4. 了解javac.exe、java.exe、javaw.exe

    了解javac.exe.java.exe.javaw.exe 了解这些之前,先要了解一个java程序是怎么被开发的: 源码->编译(.java->.class)->运行(.class ...

  5. ctp java_上期CTP 封装JAVA API window Swig

    1 首先在http://www.sfit.com.cn/5_2_DocumentDown.htm 下载CTP  后得到下面这些文件 2 我们选用32位版本20160606_tradeapi_windo ...

  6. mac m2 编译dubbo3.1.x版本报Missing:com.google.protobuf:protoc:exe:osx-aarch_64

    原因是低版本的protobuf和grpc不支持MacBook m1或m2 protobuf,需要使用x86的protobuf. 解决方法 1.单独修改configuration <configu ...

  7. java 调用window程序_Windows下Java调用可执行文件代码实例

    这篇文章主要介绍了Windows下Java调用可执行文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 缘起: 由于没有找到java转换文件 ...

  8. 【Java】window系统JDK7,JDK8环境安装详细教程

    文章目录 第一步 简述 第二步 安装包安装 第三步 指明环境变量 第四步 检验 我发现最近有很多童鞋一直问我JDK环境怎么安装,这里我做一个详细步骤的讲解,以window系统为例,Linux系统的话 ...

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

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

最新文章

  1. 懂点 Nginx 如何实现反向代理与负载均衡,是面试加分项
  2. 又一年度热销爆款,OPPO R11上市一个月勇夺线下销量第一
  3. 中国有多少python程序员-“刚毕业1年,做Python能挣多少?”网友:吹的不多……...
  4. Home界面的ListView
  5. 5kyu Some Egyptian fractions
  6. vim打开所有折叠的方法及其他所有折叠的命令
  7. python好不好用_但python以前不太好用
  8. getValue()方法 java_java.util.zip.CRC32.getValue()方法示例
  9. sql server 修改表结构语法大全
  10. 在 Asp.Net Core WebAPI 中防御跨站请求伪造攻击
  11. winform中listView
  12. 逼自己学python后,我成了同事眼中的大神
  13. kinect1+depthimage_to_laserscan
  14. 在vue项目中定义全局变量和全局函数
  15. 学习pytorch: 语义分割工具
  16. unity3d游戏3dRPG角色扮演完整项目源码分享
  17. 如何快速提升数据分析能力
  18. 台式计算机硬盘主要接口,硬盘接口类型,详细教您怎么看硬盘接口的类型
  19. niosII处理器与串行D/A转换器接口设计
  20. 三维立体地图开发项目书

热门文章

  1. Matplotlib-scatter-绘制散点图
  2. 20行代码实现电影评论情感分析
  3. HiveSQL窗口函数
  4. Tomcat vs. Jetty vs. Undertow: Comparison of Spring Boot Embedded Servlet Containers
  5. 当我们在谈深度学习时,到底在谈论什么(二)--转
  6. RSA体系 c++/java相互进行加签验签--转
  7. Jenkins配置基于角色的项目权限管理--转
  8. 基于Linux的集群系统(八)--转
  9. 各种基本的排序算法在Object-C实现
  10. 最后一期:如何更新LSTM模型?(附代码)| 博士带你学LSTM