2020年5月24日日曜日

jpackage を使って HelloWorld をパッケージ化する

前提

  • OS: Windows 10 Pro
  • Java: openjdk version "14.0.1" 2020-04-14
  • Gradle: Gradle 6.4.1

Java, Gradle にパスを通しておくこと。

プロジェクトの準備

プロジェクトのひな形作成

gradle init で Java プロジェクトを作る。

> gradle init

Select type of project to generate:
  1: basic
  2: application
  3: library
  4: Gradle plugin
Enter selection (default: basic) [1..4] 2

Select implementation language:
  1: C++
  2: Groovy
  3: Java
  4: Kotlin
  5: Swift
Enter selection (default: Java) [1..5] 3

Select build script DSL:
  1: Groovy
  2: Kotlin
Enter selection (default: Groovy) [1..2] 1

Select test framework:
  1: JUnit 4
  2: TestNG
  3: Spock
  4: JUnit Jupiter
Enter selection (default: JUnit 4) [1..4] 4

Project name (default: first_step):
Source package (default: first_step): jp.dip.oyasirazu.study.java14.first_step

> Task :init
Get more help with your project: https://docs.gradle.org/6.4.1/userguide/tutorial_java_projects.html

BUILD SUCCESSFUL in 1m 5s
2 actionable tasks: 2 executed

試しに実行

> .\gradlew run
Downloading https://services.gradle.org/distributions/gradle-6.4.1-bin.zip
.........10%..........20%..........30%..........40%.........50%..........60%..........70%..........80%.........90%..........100%

> Task :run
Hello world.

BUILD SUCCESSFUL in 34s
2 actionable tasks: 2 executed

> .\gradlew test

BUILD SUCCESSFUL in 15s
3 actionable tasks: 2 executed, 1 up-to-date

module-info.java 作成

./src/main/java/module-info.java に以下ファイルを作成。

module main {
}

ビルド。

.\gradlew.bat build

Java アプリケーションのパッケージング

WIX Toolset のインストール

WiX Toolset をインストールする。

今回は Chocolatey Software | WiX Toolset 3.11.2 でインストール。

choco install wixtoolset

最小ランタイム作成

ビルドしてランチャー付き最小ランタイムを作成。

jlink --compress 2 --strip-debug --no-header-files --no-man-pages --module-path ./build/libs/first_step.jar --add-modules main --output ./release/app --launcher first_step=main/jp.dip.oyasirazu.study.java14.first_step.App

./release/app に生成される。

インストーラー作成

jpackage -n first_step --app-image ./release/app --dest ./release/package --vendor "mikoto2000" --win-dir-chooser
  • -n: アプリケーション名
  • --app-image: アプリイメージ。 jlink で作ったディレクトリを指定する
  • --dest: 出力先ディレクトリ。このディレクトリに [アプリケーション名].exe が生成される
  • --vendor: Windows だと入れないとエラーになるようだ
  • --win-dir-chooser: ユーザーにインストール場所を選択させるためのフラグ

./release/package/first_step-1.0.exe が生成される。

インストール

./release/package/first_step-1.0.exe をダブルクリックするとインストーラーが起動するのでインストールする。

  1. インストールウィザードが開くので Next ボタン押下
  2. インストールディレクトリを選択して Next ボタン押下
  3. Install ボタン押下
  4. Finish ボタン押下

実行

[インストールディレクトリ]/bin にパスを通して実行する。

> $Env:Path='C:\Program Files\first_step\bin\;'+$Env:Path
> first_step.bat
Hello world.

以上。

参考資料

0 件のコメント:

コメントを投稿