lizongbo at 618119.com 工作,生活,Android,前端,Linode,Ubuntu,nginx,java,apache,tomcat,Resin,mina,Hessian,XMPP,RPC

2008年07月8日

在Eclipse中配置google protobuf的demo

Filed under: Java — 标签:, , — lizongbo @ 13:31

1. 下载:

http://protobuf.googlecode.com/files/protobuf-2.0.0beta.zip
http://protobuf.googlecode.com/files/protoc-2.0.0beta-win32.zip

来源:http://code.google.com/p/protobuf/

2.解压文件到:

D:\Java\protoc

将descriptor.proto生成java 代码,

D:\Java\protoc>protoc.exe -h

D:\Java\protoc>protoc.exe –java_out=./ D:\Java\protoc\protobuf-2.0.0beta\src\google\protobuf\descriptor.proto

3.在Eclipse中新建java工程

工程路径在:E:\lizongbo\workspace\protobuf

复制D:\Java\protoc下生成的com目录到E:\lizongbo\workspace\protobuf\src

复制D:\Java\protoc\protobuf-2.0.0beta\java\src\main\java下的com目录到E:\lizongbo\workspace\protobuf\src

4.定义一个proto文件

参考:http://code.google.com/apis/protocolbuffers/docs/proto.html

qquser.txt内容如下:
option java_package = “com.lizongbo.beans”;
option java_outer_classname = “QQUserProtos”;

message QQUser {
required int32 uin = 1 [default = 10000];
required string nick = 2 [default = “n”];
required int32 age = 3 [default = 20];
required int32 faceId = 4 [default = 0];
}

5.生成java代码:protoc.exe –java_out=./ qquser.txt

6.测试代码:

package com.lizongbo.beans;

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
QQUserProtos.QQUser.Builder builder = QQUserProtos.QQUser.newBuilder();
builder.setAge(30);
builder.setFaceId(2);
builder.setNick(“lizongbo”);
builder.setUin(10000);
QQUserProtos.QQUser user = builder.build();
System.out.println(user.toString());
System.out.println(user.toByteString().toStringUtf8());
}

}

7.例子可以使用了。

2 Comments »

  1. Exception in the line of the Class:Test
    QQUserProtos.QQUser user = builder.build();
    请大虾告诉下是不是哪里设置错了?

    Reply

    评论 by paudal — 2008年07月16日 @ 23:24

  2. 不好意思,是我设置有问题,现在已解决
    还是谢谢

    Reply

    评论 by paudal — 2008年07月16日 @ 23:41

RSS feed for comments on this post.

Leave a comment

Powered by WordPress