2012-04-19 12 views
1

javaでjarファイルをプログラムで生成したいと思います。これは、入力されたjarファイルが難読化されていない場合にうまく機能します。私はそれを難読化ツールを使用する場合は、最初のエントリはもはや明白ではありませんので、私は新しいファイルを生成することはできません...Java - getManifest()問題:最初のエントリではありません

ここに私のコードです:

JarInputStream input = new JarInputStream(getClass().getResourceAsStream("/obfuscated_jar.jar")); 
JarOutputStream output = new JarOutputStream(new FileOutputStream("generated_jar.jar"), input.getManifest()); 

nullを返しますinput.getManifest()ラインそのマニフェストが最初の場所にないからです。

私はいくつか検索しましたが、それはJarInputStreamの既知の問題です。だからここに私の質問です:それを解決することは可能ですか?私自身のgetManifestメソッドなどを書くのと同じですか?

答えて

0

最後に、私はそれを作る方法を見つけました。

が、私は私のメインのjarに私のファイルMANIFEST.MFを保存し、この場合input.getManifest()

Manifest mf = new Manifest(); 
mf.read(getClass().getResourceAsStream("/lib/manifest.mf")); 

を置き換えるためにそのコードを使用し、私はobfuscated_jar.jarからmanifest.mfを抽出し、私のメインのjarファイルのlibフォルダに貼り付けます。

これはおそらく最良の方法ではありませんが、機能します。

私はこれが誰かを助けてくれることを願っています。

関連する問題