前言:IntellijIdea的JavaFx專案使用JavaPackager的包檔流程教學
本文內容主要參考JavaPackager的Git Readme。
這邊來做個簡單的修改Inno Setup安裝精靈內容的範例:加上中文語言的語言選擇。
簡單來說,Inno Setup的安裝精靈是透過.iss來產生的,而JavaPackager會產生預設的.iss。
如果要自訂內容,必須在專案目錄下面 ${assetsDir}/windows/
(assetsDir沒設定的情況會是assets/windows
) 建立.vtl的檔案,
我這邊請GPT幫我轉換預設.iss檔案之後的內容如下(這是另一個展示的專案Fx-Demo,基本上大同小異):
#set( $MyAppName = "Fx-Demo" )
#set( $MyAppVersion = "1.0-SNAPSHOT" )
#set( $MyAppPublisher = "ACME" )
#set( $MyAppURL = "" )
#set( $MyAppExeName = "Fx-Demo.exe" )
#set( $MyAppFolder = "Fx-Demo" )
#set( $MyAppLicense = "" )
#set( $MyAppIcon = "C:\\Side_Project\\Fx-Demo\\assets\\windows\\Fx-Demo.ico" )
#set( $MyShortcutName = "Fx-Demo" )
[Setup]
AppId=${MyAppName}
AppName=${MyAppName}
AppVersion=${MyAppVersion}
AppVerName=${MyAppName} ${MyAppVersion}
AppPublisher=${MyAppPublisher}
AppPublisherURL=${MyAppURL}
AppSupportURL=${MyAppURL}
AppUpdatesURL=${MyAppURL}
DefaultDirName={autopf}\\${MyAppFolder}
DisableDirPage=no
DefaultGroupName=${MyAppName}
DisableProgramGroupPage=no
DisableFinishedPage=no
DisableWelcomePage=yes
PrivilegesRequired=admin
PrivilegesRequiredOverridesAllowed=commandline
LicenseFile=${MyAppLicense}
SetupIconFile=${MyAppIcon}
UninstallDisplayIcon={app}\\${MyAppExeName}
Compression=lzma
SolidCompression=yes
ArchitecturesInstallIn64BitMode=x64
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "chinese"; MessagesFile: "compiler:Languages\\ChineseTraditional.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Registry]
[Files]
Source: "C:\\Side_Project\\Fx-Demo\\target\\Fx-Demo\\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
[Icons]
Name: "{autoprograms}\\${MyAppName}"; Filename: "{app}\\${MyAppExeName}"; IconFilename: "{app}\\Fx-Demo.exe"
Name: "{autodesktop}\\${MyShortcutName}"; Filename: "{app}\\${MyAppExeName}"; IconFilename: "{app}\\Fx-Demo.exe"; Tasks: desktopicon
[Run]
[Code]
function GetInstallLocation(): String;
var
unInstPath: String;
installLocation: String;
begin
unInstPath := ExpandConstant('Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\${MyAppName}_is1');
installLocation := '';
if not RegQueryStringValue(HKLM, unInstPath, 'InstallLocation', installLocation) then
RegQueryStringValue(HKCU, unInstPath, 'InstallLocation', installLocation);
Result := RemoveQuotes(installLocation);
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssInstall then
begin
// 你可以在這裡加你的安裝步驟邏輯
end;
end;
上面的內容裡面,我加了Name: "chinese"; MessagesFile: "compiler:Languages\\ChineseTraditional.isl"
,這個就是新增中文語言選擇的設定,與之對應的是必須在Inno Setup的目錄下面新增中文的.isl檔案,可以在官網找語言下載,然後放到Inno Setup安裝目錄下面的\Languages
裡面即可。
如果是亂碼的話,要記得把檔案轉成UTF-8-BOM編碼。
也可以看到文案其實就在.isl檔案裡面,更改就可以調整。其他的安裝精靈設置也是只要改iss檔案就可以,這邊就以這個案例做個示範,再請大家發揮自己的想像力與創造力了XD。