前面测试完了protobuf的c++tutorial,接着测试一下java tutorial,已经ant的build.xml文件编写。
根据./proto/目录下的addressbook.proto( 内容请参考tutorial)生成.java文件,放到./java/src目录下
$ protoc -I=./proto --java_out=./java/src ./proto/addressbook.proto
在 ./java/src 目录下
$ cd ./java/src
编写Reader.java 和 Writer.java( 内容请参考tutorial )
在.java/目录下,编写build.xml文件,关于build.xml的编写,请参考这里
$ cd ..
$ cat build.xml
<project name="ProtoTest" basedir="." default="main">
<property name="src.dir" value="src"/>
<property name="build.dir" value="build"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="jar.dir" value="${build.dir}/jar"/>
<property name="lib.dir" value="lib"/>
<path />
</project>
生成ProtoTest.jar
$ant jar
测试 ListPeople和AddPerson类
$ java -classpath ./build/jar/ProtoTest.jar:./lib/protobuf-java-2.4.1.jar AddPerson address.txt Enter person ID number: 01 Enter name: donal Enter email address (blank for none): donal0412@gmail.com Enter a phone number (or leave blank to finish): 88236017 Is this a mobile, home, or work phone? work Enter a phone number (or leave blank to finish):
$ java -classpath ./build/jar/ProtoTest.jar:./lib/protobuf-java-2.4.1.jar ListPeople address.txt Person ID: 1 Name: donal E-mail address: donal0412@gmail.com Work phone #: 88236017
测试java和c++程序通过文件通信
$ java -classpath ./build/jar/ProtoTest.jar:./lib/protobuf-java-2.4.1.jar ListPeople ../cpp/address.txt Person ID: 1 Name: donal E-mail address: donal0412@gmail.com Work phone #: 88236017
$ ../cpp/reader address.txt Person ID: 1 Name: donal E-mail address: donal0412@gmail.com Work phone #: 88236017