1.下载工具
protoc-2.4.1-win32.zip
protobuf-java-2.4.1.jar
(注意两者的版本要相同,下载地址https://github.com/protocolbuffers/protobuf)
2.proto文件的内容
syntax = "proto2";
option java_package = "com.netty.protobuf";
option java_outer_classname = "TeacherSerializer";
message Teacher{
required int64 id = 1;
required int32 age =2;
required string name = 3;
}
3.根据proto文件生成java文件
解压protoc-2.4.1-win32.zip,将其中的protoc.exe文件和Teacher.proto文件放在同一个文件夹下。
使用命令生成TeacherSerializer.java文件。
protoc ./Teacher.proto --java_out=./
4.创建java工程
创建java工程Protobuf,将生成的文件TeacherSerializer.java放入工程,并将 protobuf-java-2.4.1.jar作为Referenced Libraries引入到工程中。
5.测试代码
创建测试类TestProtobuf,测试自动生成的java文件是否能正常使用。
package com.netty.protobuf;
import java.util.Arrays;
import com.netty.protobuf.TeacherSerializer.Teacher;
import com.netty.protobuf.TeacherSerializer.Teacher.Builder;
public class TestProtobuf {
public static void main(String[] args) {
Builder builder = TeacherSerializer.Teacher.newBuilder();
builder.setId(1L).setAge(22).setName("April");
Teacher t = builder.build();
System.out.println(Arrays.toString(t.toByteArray()));
System.out.println("Length = " + t.toByteArray().length);
}
}
运行结果:
[8, 1, 16, 22, 26, 5, 65, 112, 114, 105, 108]
Length = 11