一. 安裝 protoc
1.ubuntu 安裝
方法一:
使用 sudo apt-get install protoc
安裝
方法二:
- 去https://developers.google.com/protocol-buffers/docs/downloads下載*.tar.tz壓縮包,解壓,
- 命令行進入解壓後目錄,依次執行如下
./configure
make
創建文件 /etc/ld.so.conf.d/libprotobuf.conf 寫入內容:/usr/local/lib
輸入命令sudo ldconfig
注:protobuf的默認安裝路徑是/usr/local/lib,而/usr/local/lib 不在Ubuntu體系默認的 LD_LIBRARY_PATH 裏,後面install找不到該lib然後
sudo make install
安裝後,輸入
protoc --version
驗證是否安裝成功
2.windows安裝
- 去官方下載windows版本解壓
- 把裏面的protoc.exe所在目錄,添加到環境變量
二.protobuf在java中的使用
- 新建test.proto,內容如下
package tutorial;//相當於命名空間
option java_package = "com.example.tutorial";
//java_package 就是生成我們.java文件的包名
option java_outer_classname = "AddressBookProtos";
//java_outer_classname也就是我們把.proto編譯成.java後的名字(也就是AddressBookProtos.java)
message Person
{//類一
//消息結構
required string name = 1;
//這裏的required 的修飾符表示候name必須賦值(沒有默認值)
required int32 id = 2;
optional string email = 3;
//同理optional 也就是可不賦值當然 如果你在後面加了[dafault = xx],例如
//optional string email = 3;[dafault = 0]默認值是0
//required和optional可以有默認值
enum PhoneType {//枚舉定義
MOBILE=0;
HOME=1;
WORK=2;
}
message PhoneNumber {//結構體、類,統一定義爲 message實際上是嵌套類
required string number = 1;
optional PhoneType type = 2[ default=HOME];
}
repeated PhoneNumber phone = 4;
}
message AddressBook
{//類二
repeated Person person = 1;
}
- 執行
protoc -I=./--java_out=./ test.proto
在當前目錄按照包名生成對應的java文件 - 將java文件添加到工程中,並加入如下引用:
compile 'com.google.protobuf:protobuf-java:2.6.1'
此處可以參考 https://developers.google.com/protocol-buffers/docs/javatutorial
本文參考:
https://github.com/google/protobuf
https://developers.google.com/protocol-buffers