2017-12-06 3 views
0
InputStream manifestStream = ServiceController.class.getClassLoader().getResourceAsStream("META-INF/MANIFEST.MF") 

Manifest manifest= new Manifest(manifestStream); 

上記のコードはjarファイルで、Macのコマンドラインでjarを実行すると、他のマニフェストファイルが読み込まれます。jarを実行したときに不正なmanifest.mfを読み込む理由

私がテストできる限り、このケースはちょうどMACとAWSのサービスインスタンスが表示されますが、WindowsとLinuxサーバは表示されません。これは、このjarがWindowsおよびLinuxサーバーで期待されるマニフェストファイルを読み取ることができることを意味します。

誰かご覧になれますか?

実行されたコマンド:java -jar xxx.jar

Jarファイル構造:7Zやzipによって enter image description here

答えて

0

オープンfile.jarとフォルダのMETA-INFを見る - > MANIFEST.MFファイルをチェック - >自分のメインクラスをチェックこのマニフェストファイルで そして、フォルダMETA-INFの* .RSA、* .MFを削除する必要があります(MANIFEST.MFファイルのみを保持します)

+0

私たちのjarファイル内のMANIFEST.MFファイルは1つだけです –

+0

META-INF/MANIFEST.MFを開き、このマニフェストファイルのMain-Classを確認してください。 –

+0

はい、私はこのJARのメインクラスとマニフェストファイルには確信していますが、2つのメインクラスがあります。 '' mainClass:com.xxx.xxx.starter "'、 もう1つは '"メインクラス:rg.springframework.boot.loader.WarLauncher "' –

関連する問題