步骤一, 书写 .proto 文件,这里直接上google官方实例,并存储为addressbook.proto
package tutorial;
option java_package = "com.example.tutorial";
option java_outer_classname = "AddressBookProtos";
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phone = 4;
}
message AddressBook {
repeated Person person = 1;
}
步骤2、下载.proto文件编译器
到protobuf发布版本的地方https://github.com/google/protobuf/releases下载 protoc-3.1.0-win32.zip并解压
通过命令行将.proto的文件生成为.java的文件
官网上是这样写的
protoc -I=$SRC_DIR --java_out=$DST_DIR $SRC_DIR/addressbook.proto
下面直接来看具体操作
1、由于protoc.exe在bin文件夹下,所以先进入该目录
2、执行 protoc.exe --java_out=./ addressbook.proto 命令
3、在当前目录下就会生成目标文件
下面来解释下命令行的意思
protoc --proto_path=IMPORT_PATH --cpp_out=DST_DIR file.proto
--java_out=DST_DIR
--python_out=DST_DIR
1.引用文件夹(使用--proto_path 或者 -I),如果proto文件中需要引用其他文件,在这指定(需要绝对路径,也就是需要完整的路径)
IMPORT_PATH 引用的路径:当pb文件里面有import关键字时,会在引用路径里面寻找依赖的文件。如果没有给出,会再当前路径下进行寻找。也可以缩写成 -I
2.文件输出文件夹 (--cpp_out 或者 --java_out 或者 --python_out) 根据需要选择需要生成的格式,并且指定文件夹
3.需要编译的pb文件