对于google protocol buffer很多人都使用过。最近项目中需要用到序列化传输、解析的工作。打算系统学习一下。
1.在windows环境下的安装步骤
(1)在http://code.google.com/p/protobuf/downloads/list下载protobuf-2.4.1.zip和 protoc-2.4.1-win32.zip.
(2)在本地目录进行解压, protoc-2.4.1-win32.zip中包含了已经编译好的protoc.exe,protobuf-2.4.1.zip中解压会生成java子目录,其中有readme.txt提示如何进行编译.jar包。
(3)将protoc.exe拷贝到protobuf-2.4.1的src目录下,然后进入到java目录下,其中有pom.xml格式的maven项目文件(需要通过maven进行编译,网上有很多安装方式可以参考),然后通过命令mvn package进行编译(此时,可能出现系统资源不足的情况,解决方法如下:
set MAVEN_OPTS= -Xms128m -Xmx512m, 设置maven启动是的内存分配情况,与JAVA相类似)。
编译完成后,会在java目录下在target下,生成protobuf-java-2.4.1.jar文件。
然后运行mvn test测试用例完成。
2. JAVA基本示例学习
(1)进入到protobuf-2.4.1/examples目录,其中有定义的addressbook.proto文件,需要生成相应的序列化JAVA类,通过protoc.exe生成,
键入命令:protoc.exe -I=. --java_out=. addressbook.proto,
会生成com\example\tutorial\AddressBookProtos.java。
注:我将addressbook.proto其中的option java_package = "com.example.tutorial";进行了
修改option java_package = "";即:直接在examples目录下生成AddressBookProtos.java文件。
(2)我们通过ECLIPSE建立相应的工程进行测试
参照example中的示例,将AddPerson.java、ListPeople.java和AddressBookProtos.java三个
作为工程实例代码,并且需要将protobuf-java-2.4.1.jar作为lib包增加到工程包引用中。
(3)运行AddPerson程序,需要跟参数,即:写入信息的文件名称。然后生成相关的文件;
(4)运行ListPeople程序,读取刚才生成的数据信息即可。
貌似CSDN不能上传附件,艹。。。不打算用了。自己去搞个个人的。(域名已经申请了)。
如果需要相关项目工程实例文件,直接留个邮箱,我发过来。
联系客服