获得;java.lang.reflect.InvocationTargetException“;尝试使用'时出错;protoc-1.0M4.jar';
我想生成一个protobuf机制,用于小型嵌入式应用程序 我从protobuf网站下载了“protoc-1.0M4.jar”,并尝试使用java编译我的“test.proto”文件来生成C代码。以下是我使用的命令和错误: 命令:获得;java.lang.reflect.InvocationTargetException“;尝试使用'时出错;protoc-1.0M4.jar';,java,protocol-buffers,Java,Protocol Buffers,我想生成一个protobuf机制,用于小型嵌入式应用程序 我从protobuf网站下载了“protoc-1.0M4.jar”,并尝试使用java编译我的“test.proto”文件来生成C代码。以下是我使用的命令和错误: 命令: $ java -jar protoc-1.0M4.jar test.proto Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.
$ java -jar protoc-1.0M4.jar test.proto
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:454)
at java.lang.Integer.parseInt(Integer.java:527)
at edu.tum.cs.ccts.protobuf.embedded.EmbeddedCGenerator.getMaximumSerializedSize(EmbeddedCGenerator.java:491)
at edu.tum.cs.ccts.protobuf.embedded.EmbeddedCGenerator.compileHeader(EmbeddedCGenerator.java:307)
at edu.tum.cs.ccts.protobuf.embedded.EmbeddedCGenerator.doGenerate(EmbeddedCGenerator.java:113)
at edu.tum.cs.ccts.protobuf.embedded.Protoc.main(Protoc.java:126)
... 5 more
例外情况:
$ java -jar protoc-1.0M4.jar test.proto
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:454)
at java.lang.Integer.parseInt(Integer.java:527)
at edu.tum.cs.ccts.protobuf.embedded.EmbeddedCGenerator.getMaximumSerializedSize(EmbeddedCGenerator.java:491)
at edu.tum.cs.ccts.protobuf.embedded.EmbeddedCGenerator.compileHeader(EmbeddedCGenerator.java:307)
at edu.tum.cs.ccts.protobuf.embedded.EmbeddedCGenerator.doGenerate(EmbeddedCGenerator.java:113)
at edu.tum.cs.ccts.protobuf.embedded.Protoc.main(Protoc.java:126)
... 5 more
有人能给我一些建议吗。我尝试了网站上提供的以下示例代码,效果很好
//File: phone.proto
//
//Optional Embedded C internal options:
//@max_repeated_length=100
//@max_string_length=32
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
required PhoneType type = 2;
}
如果您能提供test.proto,我可以尝试运行,原因是:java.lang.NumberFormatException:null是您的实际异常。有些东西是空的,理想情况下应该是整数Hanks Hirak,但我使用的是下载的“protoc-1.0M4.jar”文件。我不知道如何更改或调试它。你能发布你的test.proto吗?嗨,在我的“test.proto”文件中添加了3个注释后,错误被删除了。即“@max_repeated_length/@max_string_length/@max_bytes_length”。谢谢你的帮助。