jiichan.com

PROGRAMMING

Java
javascript
CSS
PHP

IntelliJ.Gradle.JavaFX (5) NSISでインストーラーを作る

配布等を考えた場合、最適なのはやはりインストーラーかもしれない。
高額なものはとても手がでない。ネットでいろいろ探したら、 とても良さそうなインストーラー NSIS があった。 しかも無料だ。使わない手はない。

開発環境
IntelliJ IDEA 2021.2.2 (Community Edition)
jdk-15.0.1
javafx-sdk-15.0.1 nsis-3.08

NSISでインストーラーを作る

先ずは NSIS からダウンロードしインストールする。
設定はスクリプトをnsiという拡張子のファイルに、文字コードはShift-JISで書き、 NSISに読み込ませ実行することでインストーラーが出来る。

install.nsi
# Modern UIをインクルードする
!include MUI2.nsh

#基本データ
!define NAME "fxSample"
!define VERSION "1.0"
!define PACKAGE "${NAME}-${VERSION}"

# アプリケーション名
Name "${PACKAGE}"

# 作成するインストーラー名
OutFile "${PACKAGE}_Setup.exe"

# インストール先のディレクトリ
InstallDir "$PROGRAMFILES\${PACKAGE}"

# インストーラーページ
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH

# アンインストーラ ページ
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH

# 日本語UI
!insertmacro MUI_languageUAGE "Japanese"

# インストールを中断するときに警告を出す
!define MUI_ABORTWARNING

# デフォルトセクション
Section
  # 出力先を指定
  SetOutPath "$INSTDIR"
  # インストーラーに組み込むファイル群
  File "C:\NSIS\${NAME}\${PACKAGE}.exe"
  File /r "C:\NSIS\${NAME}\jre-15-min"

  # アンインストーラを出力
  WriteUninstaller "$INSTDIR\Uninstall.exe"

  # スタートメニューにショートカットを登録
  CreateShortcut "$SMPROGRAMS\${PACKAGE}\${PACKAGE}.lnk" "$INSTDIR\${PACKAGE}.exe" ""
  # デスクトップにショートカットを作成
  CreateShortcut "$DESKTOP\${PACKAGE}.lnk" "$INSTDIR\${PACKAGE}.exe" ""
  # レジストリに登録
  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PACKAGE}" "DisplayName" "${PACKAGE}"
  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PACKAGE}" "UninstallString" '"$INSTDIR\Uninstall.exe"'
SectionEnd

# アンインストーラ
Section "Uninstall"
  # アンインストーラを削除
  Delete "$INSTDIR\Uninstall.exe"
  # ファイルを削除
  Delete "$INSTDIR\${PACKAGE}.exe"
  # ディレクトリを削除
  RMDir /r "$INSTDIR"
  # スタートメニューから削除
  Delete "$SMPROGRAMS\${PACKAGE}\${PACKAGE}.lnk"
  Delete "$DESKTOP\${PACKAGE}.lnk"
  RMDir "$SMPROGRAMS\${PACKAGE}"
  # レジストリ キーを削除
  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PACKAGE}"
SectionEnd

  • fxSample
    • jre-15-min
    • fxSample-1.0.exe(exewrapで生成されたexe)
    • install.nsi
    • fxSample-1.0_Setup.exe(NSISで生成されたインストーラー)

上記のnsiスクリプトを
↓NSISアプリの左上部[Compile NSI scripts]で読込ませるとインストーラー(exe)ができる。
詳しい使い方は「nsis インストーラー 使い方」で検索すると沢山でてきます。


IntelliJ.Gradle.JavaFX (6) プラグイン org.beryx.jlink を使ってみる