2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Java]jarコマンドで圧縮・無圧縮が混在したjarファイルを作る

Last updated at Posted at 2018-10-17

JDK しかない、だと…

ビルドツールのない環境(使えるのは JDK のみ)で Spring Boot の実行可能な jar ファイル(fat jar が正式名称なんですかね?)に含まれるリソース(コンパイル不要)の一部の 差し替え が必要になって、jar コマンドでなんとかした ときのメモ。

とっさの対応

時間がなくて思いつきで えいや でやった方法です。
※オリジナルの jar ファイルの 展開 と リソースの 差し替え については割愛

作業用パス構成(一部)
+ (作業ディレクトリ)
  + work
    + BOOT-INF
      + classes
      + lib
    + META-INF
      + MANIFEST.MF
    + org
      + springframework
        + ...
コマンド
jar cvfm0 Hoge.jar ./work/META-INF/MANIFEST.MF -C ./work .

実行可能な jar ファイルはできたものの、0 オプション全ファイルを無圧縮 としたため、ファイルサイズが 数倍 に膨れ上がりました。。。

まっとうな対応

無圧縮にしたかったのは BOOT-INF/lib 配下の jar ファイルだけだったので、落ち着いてからやり方を調べてみました。

事前準備として BOOT-INF/lib 配下の jar ファイルだけ別のパスに移動させておきます。

作業用パス構成(一部、BOOT-INF/lib移動後)
+ (作業ディレクトリ)
  + work
    + BOOT-INF
      + classes
    + META-INF
      + MANIFEST.MF
    + org
      + springframework
        + ...
  + work2
    + BOOT-INF
      + lib
コマンド
jar cvfm Hoge.jar ./work/META-INF/MANIFEST.MF -C ./work .
jar uvf0 Hoge.jar -C ./work2 .

オリジナルの jar ファイルと同じように、BOOT-INF/lib 配下の jar ファイルだけが無圧縮で格納された実行可能な jar ファイルができました。

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?