protobuf 测试 & ant build.xml

前面测试完了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 id="classpath">
        <fileset dir="${lib.dir}" includes="**/*.jar"/>
    </path>


    <target name="clean">
        <delete dir="${build.dir}"/>
    </target>

    <target name="compile">
        <mkdir dir="${classes.dir}"/>
        <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"/>
    </target>

    <target name="jar" depends="compile">
        <mkdir dir="${jar.dir}"/>
        <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
        </jar>
    </target>

    <target name="clean-build" depends="clean,jar"/>

</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



原文地址:https://www.cnblogs.com/Donal/p/2385311.html