gradleでjlinkを使う
はじめに
jlinkを使うとアプリ専用のJREができて、配布に便利。
というわけでgradleで使う方法を調べてみた。
プロジェクトの準備
とりあえず普通に
gradle init --type=java-application
で作る。
build.gradleの書き換え
最低限必要なのは、pluginsの項目に以下の行を追加すること。
id 'org.beryx.jlink' version '2.22.0'
これで、gradle jlink が使えるようになる。
また、デフォルトで入っている dependencies は消しておくと警告が消える。(数字で終わるモジュール名がいけないらしい)
その他、JDKのバージョンによっては、
The module name specified in 'application.mainModule' (null) has not the expected value
という警告が出る。これは、applicationの項目に
mainModule = 'module名'
を書いておくと消える。(module名は module-info.java で指定したもの)
jlink の項目を作って、optionを設定することも可能。例えば以下のように書ける。
jlink {
options = ['--compress', '2', '--no-header-files', '--no-man-pages']
}
targetPlatformで複数のプラットフォーム用アプリを作ることもできる。この場合、各プラットフォーム用のJDKを用意しておく。
jlink {
targetPlatform("mac") {
jdkHome = "/usr/java/jdk-mac/Contents/Home"
}
targetPlatform("linux-x64") {
jdkHome = "/usr/java/jdk"
}
targetPlatform("windows-x64") {
jdkHome = "/usr/java/jdk-win"
}
options = ['--compress', '2', '--no-header-files', '--no-man-pages']
}
ビルド
gradle build
gradle build
では、jlinkを使わずにjarができる。jlinkする場合は、以下のようにする。
gradle jlink
これで build ディレクトリの下に image ができ、その下のディレクトリがアプリになっている。
targetPlatformを指定している場合は、<プロジェクト名>-<ターゲットプラットフォーム名> のディレクトリができ、その下に置かれる。
アプリ実行のためには、bin ディレクトリで <プロジェクト名> の実行スクリプトがあるので、それを実行すれば良い。(Windows用の場合はbatファイル)
アプリの配布は bin, conf, legal, libの各ディレクトリをまとめて配布すればOK。
そのままコピーして、binの実行ファイルを実行すれば起動できる。
Author And Source
この問題について(gradleでjlinkを使う), 我々は、より多くの情報をここで見つけました https://qiita.com/jkomatsu/items/dfdc27d7ee2e4ad6caa1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .