0

私はこのようなmyprotofile.protoファイルを持っています

 package PBPackage;
 message SomeMessage {
    required double someItem = 1;
 }

私はこのように構築します(私はLinuxを使用しています)

 JAVADIR=../../MyJarFile.jar
 protoc -I=. --java_out=${JAVADIR} myprotofile.proto

私のJavaプログラムProgram.javaは次のようになります

 import PBPackage.SomeMessage;
 public class Program {
      public static void main( String[] args ){
           System.out.println( "this is my program" );
      }
  }

私はこのようにProgram.javaを構築しようとします

 javac -cp .:MyJarFile.jar Program.java

しかし、私は常にこのエラーを受け取ります:

 Program.java:1 error cannot find symbol
 import PBPackage.SomeMessage;
                 ^
 symbol:           class SomeMessage
 location:         package PBPackage

私は何が間違っているのですか?

最後に、antやmavenのような過度に複雑なビルドシステムを使用するように言わないでください。

4

1 に答える 1

1

ほとんどの場合、JARファイルには、予想とは異なるパッケージでこのクラスが含まれています。

生成されたコードのパッケージ名とクラス名を明示的に指定するために、protobuf定義ファイルで使用できる2つのオプションがあります。

option java_package = "com.example.tutorial";
option java_outer_classname = "AddressBookProtos";

詳細については、このチュートリアルを確認してください。

于 2012-11-20T15:03:29.173 に答える