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

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

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

本文介紹了如何檢查JAR文件是否有效?的處理方法,對大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

My WebApp允許用戶上傳JAR文件。但是,上載JAR文件后,它會被損壞。我已經(jīng)通過比較上傳文件(Winmd5free)前后的MD5校驗(yàn)和來驗(yàn)證這一點(diǎn)。

上傳的JAR文件與原始JAR文件幾乎相同:

文件大小與原始文件相似(以KB為單位)
我可以使用解壓程序打開上傳的JAR文件并查看其內(nèi)容(資源和類文件),與原始文件相比一切都是一樣的

當(dāng)我打開上傳的JAR文件(使用記事本++)時(shí),我確實(shí)注意到二進(jìn)制內(nèi)容與原始內(nèi)容不同。此外,當(dāng)我使用JarInputStream讀取JAR條目時(shí),沒有條目。

JarInputStream is = new JarInputStream(new FileInputStream(new File("uploaded.jar")));
JarEntry entry = null;
while(null != (entry = is.getNextJarEntry())) {
    System.out.println(entry.getName());
}

此外,當(dāng)我雙擊JAR(Windows)時(shí),我得到以下消息。

錯(cuò)誤:Jarfile無效或損壞

我的問題是:

有沒有辦法以編程方式檢查JAR文件是否有效?我本希望JarInputStream立即檢測到這一點(diǎn),但它根本沒有顯示任何問題
當(dāng)我在Windows中雙擊JAR文件時(shí),是不是是java.exe向我顯示了無效或損壞的JAR文件消息?
當(dāng)無效的JAR文件作為類路徑的一部分傳入時(shí),為什么沒有拋出錯(cuò)誤/異常?例如,運(yùn)行java -cp uploaded.jar;libs* com.some.class.Test命令?

這個(gè)問題與JAR簽名和/或檢查JAR文件的簽名無關(guān)。它只是檢查一個(gè)文件(上傳與否)是否為有效的JAR文件(不一定檢查JAR的類文件是否有效,因?yàn)橐呀?jīng)有關(guān)于此問題的另一篇SO文章)。

我的運(yùn)行結(jié)果jar -tvf uploaded.jar

java.util.zip.ZipException: error in opening zip file
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:127)
        at java.util.zip.ZipFile.<init>(ZipFile.java:88)
        at sun.tools.jar.Main.list(Main.java:977)
        at sun.tools.jar.Main.run(Main.java:222)
        at sun.tools.jar.Main.main(Main.java:1147)

推薦答案

以編程方式檢測無效JAR文件的方法是使用java.util.ZipFile

public static void main(String[] args) {
    if(args.length < 1) {
        System.err.println("need jar file");
        return;
    }
    
    String pathname = args[0];
    try {
        ZipFile file = new ZipFile(new File(pathname));
        Enumeration<? extends ZipEntry> e = file.entries();
        while(e.hasMoreElements()) {
            ZipEntry entry = e.nextElement();
            System.out.println(entry.getName());
        }
    } catch(Exception ex) {
        ex.printStackTrace();
    }
}

如果JAR文件無效,則實(shí)例化ZipFile對象時(shí)將拋出ZipException

這篇關(guān)于如何檢查JAR文件是否有效?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標(biāo)簽:JAR 文件 檢查
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

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

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定