[解决]--java_out: User.proto: User.proto: Cannot generate Java output because the file 's

Posted 冰花ぃ雪魄

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[解决]--java_out: User.proto: User.proto: Cannot generate Java output because the file 's相关的知识,希望对你有一定的参考价值。

在使用 protocol buffer 的时候,用.proto文件生成代码文件时报错

使用命令

protoc.exe --java_out c:\logs\ User.proto

User.proto文件内容格式如下

message User{                                                                                   
    required string userName = 1[default=""];                                                                               
    required string password = 2[default=""];                                                                               
}                                                                       
使用cmd命令时出现如下错误

--java_out: User.proto: User.proto: Cannot generate Java output because the file
‘s outer class name, "User", matches the name of one of the types declared insid
e it.  Please either rename the type or use the java_outer_classname option to s
pecify a different outer class name for the .proto file.

技术分享

解决方法:

原因User.proto文件名和里面的类名重复,文件名是User 里面内容message User都使用 User

修改User.proto文件名改成不和里面类名重复的就可以了,这里改成UserProtobuff

然后运行protoc.exe --java_out c:\logs\ UserProtobuff.proto 运行成功了。

第二种解决方法:

  在ptoto文件中添加i行

option java_outer_classname="ReservationTypeOuterClass";
来指定生成的java类的类名




以上是关于[解决]--java_out: User.proto: User.proto: Cannot generate Java output because the file 's的主要内容,如果未能解决你的问题,请参考以下文章

pb用法

pb用法

protoc

Grpc helloworld demo的经验

protobuf 序列化框架

在 java 和 scala 中使用 protobuf 的问题