2012-01-27 11 views
2

JARファイルの 'META-INF/config'ディレクトリにあるファイルのリストを知りたいと思います。JARファイル内のディレクトリの下にあるファイルのリストを取得する方法

私は以下のコードを使用してファイルリストを取得しています。しかし、それは失敗しています。

Enumeration<URL> path = Thread.currentThread().getContextClassLoader().getResources("META-INF/config/"); 
    while(path.hasMoreElements()) 
    { 
     URL path1 = path.nextElement(); 
     System.out.println("File =" +path1.getFile()); 
     File configFolder = new File(path1.getPath()); 
     File[] files = configFolder.listFiles(); 
     for (File file : files) 
     { 
     System.out.println("\nFile Name =" + file.getName()); 
     } 
    } 

誰かがこれを修正するのに手伝ってもらえますか?

Maviswa

+1

*どのように失敗していますか? –

+0

configフォルダは本当に存在しますか?ほとんどのJARファイルにはそのようなものはありません.JARファイルは基本的にZIPファイルなので、アーカイブユーティリティ(WinRARなど)で開いて確認します。 –

+0

どこでエラーが発生していますか?どのような例外がありますか?どのように特定のjarファイルを指定していますか? –

答えて

0

試しコード

import java.util.*; 
import java.util.jar.*; 
import java.util.zip.*; 
import java.io.*; 

public class JarContents{ 
    public static void main(String[] args) throws IOException{ 
    JarContents mc = new JarContents(); 
    } 

    public JarContents() throws IOException{ 
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 
    System.out.print("Enter jar file name: "); 
    String filename = in.readLine(); 
    File file = new File(filename); 
    if(!filename.endsWith(".jar")){ 
    System.out.println("Invalid file name!"); 
    System.exit(0); 
    } 
    else if(!file.exists()){ 
    System.out.println("File not exist!"); 
    System.exit(0); 
    } 

    try{ 
    JarFile jarfile = new JarFile(filename); 
    Enumeration em = jarfile.entries(); 
    for (Enumeration em1 = jarfile.entries(); em1.hasMoreElements();) { 
    System.out.println(em1.nextElement()); 
    } 
    } 
    catch(ZipException ze){ 
    System.out.println(ze.getMessage()); 
    System.exit(0); 
    } 
    } 
} 

幸運以下の事前のおかげで、! getResources()コール 例えばにMETA-INFの前"/"または"./"を追加

+0

OPは彼のコードを修正しようとしています。彼は新しいコードを望んでいません。 – RanRag

+0

私は私が持っていたものを提供しました。彼は代替として使うことができます...あなたが知っていれば、あなたは修正することができます。 –

+0

また、彼のコードも調べています... –

0

試してみます ...

0

私は表示するには、そのバージョン情報を抽出するためにjarファイルのMANIFEST.MFに読み取るためにしばらく前にこれを実行することを覚えておいてください。適切に構築されたすべてのjarにマニフェストがあるとすれば、リソースとしてアクセスすることは不可能であり(すべてパスは同じです)、jarファイルを個別にzipファイルとして調べなければなりません。

どこに障害があるのか​​に関する情報を提供していないとすれば、問題の原因を推測することは困難です。あなたが期待しているファイルが見つからないか、間違ったファイルを読み込んでいるのか、あるいはNPEなどを入手しているのか分かりません。

関連する問題