プロジェクト

全般

プロフィール

調査 #274

高橋 徹 さんが2年以上前に更新

h4. 調査目的 

 JDK 14でお試し導入(Incubator)され、JDK 16で正式搭載された jpackage ツールをGradleから利用して自己完結型Javaアプリケーションをパッケージ化する方法を明らかにする。 
 主な対象は、Windows OS向けのネイティブインストーラ(MSI形式)とする。 

 h4. 調査結果 

 * サードパーティ・プラグイン "The Badass JLink Plugin":https://badass-jlink-plugin.beryx.org/releases/latest/ を使用 
 ** jpackage タスクでインストーラを生成 

 h5. Windows MSI形式インストーラを作成する最小限の build.gradle 記述 

 build.gradle を{{collapse 
 <pre><code class="groovy"> 
 plugins { 
     id 'org.beryx.jlink' version "2.24.2" 
 } 

 java { 
     sourceCompatibility = JavaVersion.VERSION_17 
     targetCompatibility = JavaVersion.VERSION_17 
 } 

 application { 
     mainModule = 'com.torutk.gadget.analogclock' 
     mainClass = 'com.torutk.gadget.analogclock.AnalogClockApp' 
 } 
 </code></pre> 
 }} 

 h5. インストーラオプションの指定 

 起動時のJVMオプションおよびコマンドラインオプション 

 build.gradle の抜粋を{{collapse を{{collapse 
 <pre><code class="groovy"> 
 jlink { 
     launcher { 
         jvmArgs = [ 
             '-Xms32m', '-Xmx64m', '-Xss256k', '-XX:TieredStopAtLevel=1', 
             '-XX:CICompilerCount=2', '-XX:CompileThreshold=1500', 
             '-XX:InitialCodeCacheSize=160k', '-XX:ReservedCodeCacheSize=32m', 
             '-XX:MetaspaceSize=12m', '-XX:+UseSerialGC' 
         ] 
         args = [ 
             '--x=0', '--y=0', '--scale=1.0', '--fps=5.0', '--on-top=false' 
         ] 
     } 
 </code></pre> 
 }} 

 インストーラ生成オプションを{{collapse 
 <pre><code class="groovy"> 
 jlink { 

     jpackage { 
         installerName = 'AnalogClock' 
         appVersion = '0.8.1' 
         if (org.gradle.internal.os.OperatingSystem.current().windows) { 
             installerType = 'msi' 
             installerOptions += [ 
                 '--win-menu-group', 'High Bridge', 
                 '--win-menu', 
                 '--win-shortcut', 
                 '--win-upgrade-uuid', 'fe287b25-e03d-4744-90f4-96b05dc36bf0', 
                 '--vendor', 'High Bridge' 
             ] 
         } 
     } 
 </code></pre> 

 }} 

 h4. 完了条件 

 Gradle のプロジェクトから ネイティブインストーラを生成できること。 

 h4. 調査経過(概要) 

戻る