1. 程式人生 > >Protobuf基於java的官方示例演示

Protobuf基於java的官方示例演示

Protobuf基於java的簡單示例

         先安裝Protobuf,並編譯protobuf提供的開發,得到protobuf基於java 的類庫protobuf-2.5.0.jar,這兩部筆者的上一篇博文中有詳細的介紹以及資源下載地址,如果不有不太清楚的可以訪問筆者的上一篇博文《初識protocol buffer》。下面就直接使用Protobuf 來執行官方提供的簡單的示例。

一、具體示例步驟

         本文中就直接使用Protobuf本身自帶的一些示例,這個示例在 protobuf-2.5.0\examples 目錄中。這個示例會用到這個目錄中的addressbook.proto、AddPerson.java 和 ListPerson.java 檔案。下面一步一步來執行這些示例。

         1.首先把前面編譯生成的 protobuf-2.5.0.jar複製到 protobuf-2.5.0\examples 目錄中,便於引用。

         2.接著使用Protobuf編譯器編譯addressbook.proto 檔案。開啟命令列視窗,並定位到protobuf-2.5.0\examples 目錄中,執行命令

                   protoc--java_out=. addressbook.proto

執行這個命令後會在protobuf-2.5.0\examples目錄下生成一個.java檔案,為一個java類檔案com.example.tutorial.AddressBookProtos.java。

         3.生成了 java 類之後就是編譯並執行這個示例。在命令列中執行命令

javac -d . -classpath .;protobuf-2.5.0.jarAddPerson.java ListPeople.java com\example\tutorial\AddressBookProtos.java

         4.再執行 AddPerson,在命令中執行命令

                   java-cp .;protobuf-2.5.0.jar AddPerson addr.dat

         5.然後按照提示輸入相應的資訊,全部效果如下圖所示


注意

:這裡面的命令中,其中protobuf-2.5.0.jar為你編譯好的java類庫jar的檔名,執行這些命令時,需要電腦安裝與jar庫同版本的protobuf,同時也需要電腦上已經裝有jdk,具體jdk的安裝這裡就不多說了。具體出現相關錯誤可以參考後面的錯誤說明

         6.執行上面程式後會在當前目錄中建立一個數據檔案 addr.dat 儲存 protocol buffer 生成的資料。執行程式 ListPeople 則可以讀取 addr.dat 檔案中的資料。執行命令如下

java -cp .;protobuf-2.5.0.jar ListPeopleaddr.dat

可以看到如下資訊:


二、使用到的命令

         使用到的命令表,命令具體後續詳細介紹,這裡只提出需要注意的部分說明:

cd C:\server\protobuf-2.5.0\examples

將cmd工作空間定位到examples目錄中

protoc --java_out=. addressbook.proto

通過protobuf編譯.proto檔案,

其中addressbook.proto為需要編譯的檔名

將生成對應的java類(具體該類介紹,後續博文中再進行介紹)

javac -d . -classpath .;protobuf-2.5.0.jar AddPerson.java ListPeople.java com\example\tutorial\AddressBookProtos.java

編譯java檔案生成class檔案

執行該命令前需要在example中匯入protobuf基於java的類庫(即上一部中生成的jar包),其中protobuf-2.5.0.jar為該類庫的名字

java -cp .;protobuf-2.5.0.jar AddPerson addr.dat

執行AddPerson,生成addr.dat檔案,

java -cp .;protobuf-2.5.0.jar ListPeople addr.dat

執行ListPeople,讀取addr.dat檔案

三、相關錯誤說明

         1.一旦出現“‘protoc’不是內部或外部命令...”或者“‘javac’ 不是內部或外部命令...”等相關錯,說明protoc或jdk沒有安裝成功。

         2.如出現下圖中錯誤,則有可能是cmd工作空間沒有定位到protobuf-2.5.0\examples目錄,或者examples目錄中沒有addressbook.proto檔案,抑或執行命令中將.proto檔名書寫錯誤


3.如果出現下圖錯誤,則可能是因為未將protobuf基於java的類庫(protobuf-2.5.0.jar)檔案匯入到examples目錄下


4如果出現下圖錯誤,則可能是因為你匯入的protobuf基於java的類庫檔案(protobuf-x.x.x.jar)版本與你安裝的protobuf編譯器(proto.exe)版本不同。


5如果出現關於檔案找不到等相關錯誤,請檢查你命令的執行順序以及命令中檔名的拼寫等。

資源相關:

         一、本文參考資源

                 1.Protobuf簡介和使用原理 http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/

                 2.Protobuf使用入門 http://blog.sina.com.cn/s/blog_492dbb6b0100qorb.html

         二、本文使用到的資源(個人雲盤)

                   1protobuf-2.5.0.tar.gz + protobuf-2.5.0.jar + proto.exe下載:

                            http://pan.baidu.com/s/1sjuxdFJ

                   2其他protobuf相關資源下載:

                            http://pan.baidu.com/s/1c0I4cU0