2016-03-22 9 views
2

解決済み、下の投稿を参照Java:1つのjarファイルから別のjarファイルにフォルダをコピーする方法は?

Javaを使用して1つの.jarから別の.jarにファイルをコピーしたいとします。しかし、瓶のすべてのファイルがコピーされるわけではありません。私はサブフォルダを含むことができる1つの特定のフォルダをコピーするだけです。私はすでに別のjarファイルからファイルをコピーするコードを持っている:

public static void copyFiles(final File file) throws IOException { 

    final JarFile targetJar = new JarFile(file); 
    final JarOutputStream output = new JarOutputStream(new FileOutputStream(file)); 

    final JarFile localJar = new JarFile(new File(JarEditor.class.getProtectionDomain().getCodeSource().getLocation().getFile())); 

    // WRAPPER_CONTENT is a String[] which contains all names of the files i want to copy 
    for (final String entryName : StringResource.WRAPPER_CONTENT) { 
     final JarEntry entryToCopy = localJar.getJarEntry(entryName); 
     final JarEntry targetEntry = new JarEntry(entryName); 

     output.putNextEntry(targetEntry); 

     final InputStream input = localJar.getInputStream(entryToCopy); 
     final byte[] buffer = new byte[10240]; 
     int readByte = 0; 
     while ((readByte = input.read(buffer)) >= 0) { 
      output.write(buffer, 0, readByte); 
     } 
    } 

    output.flush(); 
    output.close(); 

    localJar.close(); 
    targetJar.close(); 
} 

現在、彼らの名前のハードコードされたリストを実行してファイルをコピーするイム。しかし、IDはより柔軟な方法を好み、私の瓶からリソースを追加したり削除したりすることができます。それらはすべて、jarファイル内に同じ親フォルダがあります。だから私はその1つのフォルダを通過し、それらのファイルだけをコピーするのだろうか?

また、言及する価値はありますが、コピーするすべてのファイルは、おそらく自分のコードを見ているので、私のランタイムが来ているjarファイルにあります。助けのための

おかげ
Baschdi

答えて

0

私は推測不運。私はしばらくの間、ソリューションを探していました。このスレッドを作成すると、ソリューションを見つけることができます。 jarentryの名前が、コピーしたいフォルダの名前で始まるかどうかを確認するだけです。もしそうなら、私は上記と同じ方法で他のjarファイルにjarentryをコピーします。解決済み

関連する問題