我有一个看起来像这样的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。
答案 0 :(得分:1)
很可能你的JAR文件在不同的包中包含了这个类。
您可以在protobuf定义文件中使用两个选项来明确指定生成代码的包名和类名:
option java_package = "com.example.tutorial";
option java_outer_classname = "AddressBookProtos";
请查看this tutorial了解详情。