我有一个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。
发布于 2012-11-20 23:03:29
很可能您的JAR文件包含此类的包与您预期的不同。
您可以在您的protobuf定义文件中使用两个选项来显式地为生成的代码指定包和类名:
option java_package = "com.example.tutorial";
option java_outer_classname = "AddressBookProtos";有关更多信息,请查看this tutorial。
https://stackoverflow.com/questions/13462630
复制相似问题