日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了JarInputStream為現有清單文件返回空的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我在使用JarInputStream獲取(完全)操作的.jar文件的清單時遇到問題,我得到空指針。嘗試了幾個略有不同的文件,沒有拋出異常。注意:此文件來自代碼生成器。具有以下結構(希望此形狀有助于您理解):

|[+]test.jar
  |[+]META-INF
      |MANIFEST.MF
  |[+]mypackage
      |MyClass.class
|text.txt

上面是類的一部分(注意:此類不在.jar內)

/*...code...**/
File jar = new File("resources/test.jar");
FileInputStream fis = new FileInputStream(jar);
JarInputStream jis = new JarInputStream(fis);
Manifest jarManifest = jis.getManifest();
Attributes jarManifestAttributes = jarManifest.getMainAttributes(); //line 25
String mainClass = jarManifestAttributes.getValue("Main-Class");
/*...code...**/

運行上面的代碼時,拋出以下異常:

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

ZIP

這是JarInputStream中的錯誤,MANIFEST.MF必須位于推薦答案文件的前幾個條目中,如下所示:

$ jar -tvf example-correct-archive.jar
  623 Thu Jun 13 12:13:42 CEST 2019 META-INF/MANIFEST.MF
    0 Thu Jun 13 12:13:42 CEST 2019 META-INF/
    ...

在您的情況下,該條目之前還有3個其他文件。

解決方法

a)使用jar工具重新排序JAR文件中的條目:

test.jar文件解壓縮到目錄foo
將現有MANIFEST.MF文件移到目錄上一級foo并刪除META-INF目錄
內部foo目錄運行命令:jar cvfm ../test.jar ../MANIFEST.MF .
foo之外,您將獲得具有正確條目順序的修復JAR文件

b)使用JarFile而不是JarInputStream

詳細信息

參見JDK-8031748 Clarify jar entry orders in a jar file:

從一開始,JAR文件就有一個”未記錄的”假設
MANIFEST.MF文件和與簽名相關的文件(塊和SF)應
出現在開頭(除了目錄條目,比如說,
META-INF/)。
(…)

這篇關于JarInputStream為現有清單文件返回空的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:JarInputStream 文件 清單 現有 返回
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定