protoc.exe java_protobuf java 使用 window
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相关推荐
- protoc.exe java_protobuf——使用protoc.exe生成message文件
1.下载protoc.exe和对应jar包 protoc.exe从https://github.com/protocolbuffers/protobuf/releases下载protoc-3.7.0- ...
- javac.exe 、 java.exe、 javaw.exe 、 javaws.exe有什么区别?
最近用命令行执行jar包时,碰巧遇到了这个问题,有点感兴趣,查了大量资料之后,简单地写写我自己的总结,以供大家参考. 首先,我先贴上我主要参考的文章 一个是javapapers.com,另 ...
- java exe jdk_javac.exe 和java.exe两个可执行程序放在JDK安装目录的( )目录下。_学小易找答案...
[填空题]跳转语句包括 . . 和 [填空题]创建包时需要使用关键字 . [单选题]假设 a 是 int 类型的变量,并初始化为 1 ,则下列( )是合法的条件语句? [单选题]有一个类 B ,下面为 ...
- 了解javac.exe、java.exe、javaw.exe
了解javac.exe.java.exe.javaw.exe 了解这些之前,先要了解一个java程序是怎么被开发的: 源码->编译(.java->.class)->运行(.class ...
- ctp java_上期CTP 封装JAVA API window Swig
1 首先在http://www.sfit.com.cn/5_2_DocumentDown.htm 下载CTP 后得到下面这些文件 2 我们选用32位版本20160606_tradeapi_windo ...
- 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 ...
- java 调用window程序_Windows下Java调用可执行文件代码实例
这篇文章主要介绍了Windows下Java调用可执行文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 缘起: 由于没有找到java转换文件 ...
- 【Java】window系统JDK7,JDK8环境安装详细教程
文章目录 第一步 简述 第二步 安装包安装 第三步 指明环境变量 第四步 检验 我发现最近有很多童鞋一直问我JDK环境怎么安装,这里我做一个详细步骤的讲解,以window系统为例,Linux系统的话 ...
- protoc 命令生成java文件时报错解决方案
当使用protoc --java_out=./ running_conditions.proto命令通过proto协议文件生成java文件报错如下时 running_conditions.proto: ...
最新文章
- 懂点 Nginx 如何实现反向代理与负载均衡,是面试加分项
- 又一年度热销爆款,OPPO R11上市一个月勇夺线下销量第一
- 中国有多少python程序员-“刚毕业1年,做Python能挣多少?”网友:吹的不多……...
- Home界面的ListView
- 5kyu Some Egyptian fractions
- vim打开所有折叠的方法及其他所有折叠的命令
- python好不好用_但python以前不太好用
- getValue()方法 java_java.util.zip.CRC32.getValue()方法示例
- sql server 修改表结构语法大全
- 在 Asp.Net Core WebAPI 中防御跨站请求伪造攻击
- winform中listView
- 逼自己学python后,我成了同事眼中的大神
- kinect1+depthimage_to_laserscan
- 在vue项目中定义全局变量和全局函数
- 学习pytorch: 语义分割工具
- unity3d游戏3dRPG角色扮演完整项目源码分享
- 如何快速提升数据分析能力
- 台式计算机硬盘主要接口,硬盘接口类型,详细教您怎么看硬盘接口的类型
- niosII处理器与串行D/A转换器接口设计
- 三维立体地图开发项目书
热门文章
- Matplotlib-scatter-绘制散点图
- 20行代码实现电影评论情感分析
- HiveSQL窗口函数
- Tomcat vs. Jetty vs. Undertow: Comparison of Spring Boot Embedded Servlet Containers
- 当我们在谈深度学习时,到底在谈论什么(二)--转
- RSA体系 c++/java相互进行加签验签--转
- Jenkins配置基于角色的项目权限管理--转
- 基于Linux的集群系统(八)--转
- 各种基本的排序算法在Object-C实现
- 最后一期:如何更新LSTM模型?(附代码)| 博士带你学LSTM