Java 现有清单文件的JarInputStream retuns null
当使用JarInputStream获取(完全)运行的.jar文件的清单时,我遇到了一个问题,我得到了空指针。尝试了一些不同的文件,但没有引发异常。注意:此文件来自代码生成器。具有以下结构(希望此形状有助于您理解): 上面是这个类的一部分(注意:这个类不在.jar中) 运行上述代码时,会抛出以下异常:Java 现有清单文件的JarInputStream retuns null,java,jar,manifest,Java,Jar,Manifest,当使用JarInputStream获取(完全)运行的.jar文件的清单时,我遇到了一个问题,我得到了空指针。尝试了一些不同的文件,但没有引发异常。注意:此文件来自代码生成器。具有以下结构(希望此形状有助于您理解): 上面是这个类的一部分(注意:这个类不在.jar中) 运行上述代码时,会抛出以下异常: Exception in thread "main" java.lang.NullPointerException at crypter.LoadJar.main(LoadJar.java:25)
Exception in thread "main" java.lang.NullPointerException
at crypter.LoadJar.main(LoadJar.java:25)
所以jarManifest有空值
EDIT1
MANIFEST.MF
Manifest-Version: 1.0
Main-Class: mypackage.MyClass
Permissions: all-permissions
Name: text.txt
Name: mypackage/MyClass.class
EDIT2
jar -tvf reverse_tcp2.jar
37 Sat Jan 07 11:31:14 EET 2017 text.txt
0 Sat Jan 07 11:31:14 EET 2017 mypackage/
8513 Sat Jan 07 11:31:14 EET 2017 mypackage/MyClass.class
0 Sat Jan 07 11:31:14 EET 2017 META-INF/
145 Sat Jan 07 11:31:14 EET 2017 META-INF/MANIFEST.MF
您确定在调用java的文件夹中有resources文件夹吗?@EnricoGiurin是的,但如果发生类似情况,则应抛出FileNotFoundException。我没有发现这种类型的例外您是对的,只是测试非常奇怪,我用您的替换了MANIFEST.MF,它继续工作:(@EnricoGiurin我通过解压罐子并再次压缩而修复了它,没有做任何更改。我再次从生成器生成了相同的罐子,但它没有工作。我的经验无法找到发生这种情况的原因。
Manifest-Version: 1.0
Main-Class: mypackage.MyClass
Permissions: all-permissions
Name: text.txt
Name: mypackage/MyClass.class
jar -tvf reverse_tcp2.jar
37 Sat Jan 07 11:31:14 EET 2017 text.txt
0 Sat Jan 07 11:31:14 EET 2017 mypackage/
8513 Sat Jan 07 11:31:14 EET 2017 mypackage/MyClass.class
0 Sat Jan 07 11:31:14 EET 2017 META-INF/
145 Sat Jan 07 11:31:14 EET 2017 META-INF/MANIFEST.MF