首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Google Protocol Buffer JAR文件构建Java应用程序

使用Google Protocol Buffer JAR文件构建Java应用程序
EN

Stack Overflow用户
提问于 2012-11-20 05:33:14
回答 1查看 393关注 0票数 0

我有一个myprotofile.proto文件,如下所示

代码语言:javascript
复制
 package PBPackage;
 message SomeMessage {
    required double someItem = 1;
 }

我是这样构建的(我在linux上)

代码语言:javascript
复制
 JAVADIR=../../MyJarFile.jar
 protoc -I=. --java_out=${JAVADIR} myprotofile.proto

我的Java程序Program.java看起来像这样

代码语言:javascript
复制
 import PBPackage.SomeMessage;
 public class Program {
      public static void main( String[] args ){
           System.out.println( "this is my program" );
      }
  }

我尝试这样构建Program.java

代码语言:javascript
复制
 javac -cp .:MyJarFile.jar Program.java

但我总是得到这样的错误:

代码语言:javascript
复制
 Program.java:1 error cannot find symbol
 import PBPackage.SomeMessage;
                 ^
 symbol:           class SomeMessage
 location:         package PBPackage

我做错了什么?

最后,请不要告诉我使用一些过于复杂的构建系统,如ant或maven。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-20 23:03:29

很可能您的JAR文件包含此类的包与您预期的不同。

您可以在您的protobuf定义文件中使用两个选项来显式地为生成的代码指定包和类名:

代码语言:javascript
复制
option java_package = "com.example.tutorial";
option java_outer_classname = "AddressBookProtos";

有关更多信息,请查看this tutorial

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13462630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档