protocol buffer 是 google 的一種數(shù)據(jù)交換的格式,它獨(dú)立于語(yǔ)言,獨(dú)立于平臺(tái)。google提供了三種語(yǔ)言的實(shí)現(xiàn):java、c++ 和 python,每一種實(shí)現(xiàn)都包含了相應(yīng)語(yǔ)言的編譯器以及庫(kù)文件。由于它是一種二進(jìn)制的格式,比使用xml 進(jìn)行數(shù)據(jù)交換快許多。可以把它用于分布式應(yīng)用之間的數(shù)據(jù)通信或者異構(gòu)環(huán)境下的數(shù)據(jù)交換。本文通過(guò)一個(gè)簡(jiǎn)單的示例介紹 protocolbuffer。
在開(kāi)始之前需要下載 protocol buffer 的編譯器和相應(yīng)類(lèi)庫(kù)。下載地址為:http://code.google.com/p/protobuf/downloads/list。當(dāng)前版本為 2.1.0,下載一下兩個(gè)壓縮包:protoc-2.1.0-win32.zip 和 protobuf-2.1.0.zip,前者是protocol buffer 編譯器,后者包含了三種語(yǔ)言的開(kāi)發(fā)包。
首先解壓 protoc-2.1.0-win32.zip,把 protoc.exe 文件放到 path 路徑中,最簡(jiǎn)單的就是把這個(gè)文件復(fù)制到c:\windows 目錄中。
解壓 protobuf-2.1.0.zip 文件,假設(shè)解壓后的目錄為 proto_home。由于此開(kāi)發(fā)包中只包含了源文件,沒(méi)有包含打包后的jar 文件,所以需要自己手動(dòng)編譯。下面一步一步來(lái)編譯 protocol buffer 的 java 實(shí)現(xiàn),由于 protocolbuffer 使用 maven 作為編譯工具,所以必須先下載安裝 maven,maven 可以從http://maven.apache.org 上下載。安裝 maven 非常簡(jiǎn)單,只要解壓并把 bin 目錄添加到 path 中即可。安裝好maven 后,測(cè)試一下 maven 是否安裝成功,打開(kāi)命令行窗口,運(yùn)行命令 mvn -version,當(dāng)看到一下輸出后,說(shuō)明 maven安裝成功。
在編譯之前還需把 protocol buffer 的編譯器復(fù)制一份到把 protocol buffer 的編譯器復(fù)制一份到目錄proto_home\src\ 中,由于在 maven腳本中調(diào)用了這個(gè)文件。下面在命令行窗口中把當(dāng)前工作目錄定位到proto_home\java 中,運(yùn)行命令 mvnpackage。編譯完成后會(huì)在 taget 目錄中生成一個(gè) jar 文件 protobuf-java-2.1.0.jar。
protocolbuffer 的編譯器和基于 java 的類(lèi)庫(kù)已經(jīng)準(zhǔn)備好了,下面可以使用 protocol buffer 寫(xiě)一個(gè)簡(jiǎn)單的示例。本文中就直接使用protocol buffer 本身自帶的一些示例,這個(gè)示例在 proto_home\examples 目錄中。這個(gè)示例會(huì)用到這個(gè)目錄中的addressbook.proto、AddPerson.java 和 ListPerson.java 文件。下面一步一步來(lái)運(yùn)行這些示例。
首先把前面編譯生成的 protobuf-java-2.1.0.jar 復(fù)制到 proto_home\examples 目錄中,便于引用。
使用 protocol buffer 編譯器編譯 addressbook.proto 文件。打開(kāi)命令行窗口,并定位到proto_home\examples 目錄中,運(yùn)行命令 protoc --java_out=.addressbook.proto,執(zhí)行這個(gè)命令后會(huì)在當(dāng)前目錄下生成一個(gè)java類(lèi)com.example.tutorial.AddressBookProtos.java。
生成了 java類(lèi)之后就是編譯并運(yùn)行這個(gè)示例,在命令行中執(zhí)行命令 javac -d . -classpath.;protobuf-java-2.1.0.jar AddPerson.java ListPeople.javacom\example\tutorial\AddressBookProtos.java。
下面運(yùn)行 AddPerson,在命令中執(zhí)行命令 java -cp .;protobuf-java-2.1.0.jar AddPersonaddr.dat,按照提示輸入相應(yīng)的信息,如下圖所示
聯(lián)系客服