获得;java.lang.reflect.InvocationTargetException“;尝试使用'时出错;protoc-1.0M4.jar';

获得;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.

我想生成一个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.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”。谢谢你的帮助。