原創|產品更新|編輯:鄭恭琳|2021-02-24 10:22:54.300|閱讀 1140 次
概述:install4j 9.0現在可以自定義安裝程序的外觀。默認情況下,外觀設置為FlatLaf,這是一種跨平臺外觀,可自動檢測暗或亮模式。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
install4j 9.0引入了以下值得注意的新功能:
1、現在可以自定義安裝程序的外觀。默認情況下,外觀設置為FlatLaf,這是一種跨平臺外觀,可自動檢測暗或亮模式。
您可以在新的“外觀”步驟中調整外觀。您可以在兩個內置主題(用于亮模式)和兩個內置主題(用于暗模式)之間進行選擇。在macOS,Windows和Linux上實現了自動檢測明暗模式。在macOS上,安裝程序運行時也會檢測到在暗模式和亮模式之間切換;在Windows上,只有JetBrains Runtime支持此功能。您可以選擇禁用自動檢測,而僅使用亮或暗模式。
除了內置主題之外,您還可以為IntelliJ IDEA選擇主題。這些主題基于JSON文件,這些文件定義了UI元素的顏色和其他屬性。使用此機制,您可以為安裝程序UI開發自己的自定義主題。
包含主題的JAR文件必須在“自定義代碼”步驟中添加。之后,您可以使用主題選擇器選擇IntelliJ主題的JSON文件的資源路徑。
為了允許用戶在暗和亮模式之間手動切換,已添加了“暗模式切換器”表單組件,該組件也可以在樣式中使用。
如果僅顯示圖標,則暗模式切換器按鈕外觀平坦。這使其成為頁腳區域的一個很好的補充,此處以“青色”燈光主題顯示。
為了在同一屏幕上支持明暗模式,所有顏色屬性現在都支持明暗變體。如果您開發自定義代碼,則該代碼將自動用于java.util.Color類型的所有屬性。
在顏色編輯器中,您可以選擇是否為明暗模式提供單獨的顏色。對于自定義代碼,如果配置了不同的變體,則顏色實例將是派生類,該主題將在主題更改期間無縫切換其顏色分量值。
盡管不建議這樣做,但仍支持JRE內置的Java本機外觀,因為它與macOS的最新版本和Windows上的HiDPI分辨率的部分版本不能很好地配合。
最后,您現在可以通過實現com.install4j.api.laf.LookAndFeelHandler并在“自定義代碼”步驟上添加類以及外觀的依賴項來集成自己的外觀。LookAndFeelHandler擴展了com.install4j.api.laf.LookAndFeelEnhancer,其中包含UI元素的方法,其中運行時需要從外觀上進行特殊協作,例如創建三態復選框。您可以覆蓋這些方法的默認實現,以在install4j的上下文中提高外觀的保真度。
“customCode”示例項目包含一個自定義外觀的示例。
最后,您可能已經從上面的屏幕截圖中注意到,install4j IDE現在也正在使用FlatLaf。請考慮在GitHub上主演FlatLaf。
在首選項對話框中,仍然可以使用install4j IDE的暗模式和亮模式設置。
2、用于Amazon Corretto和Azul Zulu的JDK提供程序已添加到install4j。要使用這些JDK,您不再需要在所有必需的平臺上預先創建捆綁包,而可以在安裝過程中讓install4j完成。
除Liberica之外,Azul Zulu是JavaFX的另一個選項,用于最新的Java版本。它還提供了沒有JavaFX的Java 8,從而使JRE捆綁包變得更小。此外,最近的發行版已經包含了針對具有Apple Silicon的計算機的macos-aarch64目標。
Amazon Corretto是一個OpenJDK發行版,致力于將來自主分支機構和其他來源的其他修補程序和修補程序納入LTS版本。最近,他們也開始增加對最新功能版本的支持。
3、install4j現在可以為macOS生成通用二進制文件,以同時支持Intel和Apple Silicon。在媒體向導中,可以在“安裝選項”步驟中選擇“通用二進制文件”體系結構。
通用二進制文件不僅會為啟動器和安裝程序生成,還會為JRE軟件包生成。僅當所選的JDK提供已出版MacOS的-amd64和所選版本MacOS的-aarch64架構都有效。然后install4j將下載兩個歸檔并將它們合并到通用JRE軟件包中。
4、現在,JRE捆綁是默認設置。自從Java 9和從Oracle JRE發行版到OpenJDK發行版的轉變以來,公共JRE安裝的概念變得越來越不重要。這就是為什么現在使用當前LTS版本的AdoptOpenJDK配置新項目,并且默認情況下將新媒體文件配置為捆綁JRE的原因。
現在,已在“General Settings->JRE bundles”步驟下訂購了舊的“Java版本”步驟,并且其最低Java版本設置已成為可選步驟。如果為空,則所需的Java版本是所選JDK的主版本。現在,JDK版本在JDK提供程序中的語法為<major version>/<provider-specific version>。
從install4j 9開始,您可以指定特定于提供程序的版本“latest”以使用所選主要版本的最新版本。由于媒體文件需要特定的平臺,因此該機制會針對每個媒體文件分別搜索該平臺可用的最新版本。您還可以通過選擇主要版本的文件夾節點,在發行選擇對話框中插入此版本字符串。
對于已配置的JDK,現在可以使用“顯示所有模塊”按鈕檢查所有可用的模塊。以前,您只能看到JRE包中將包含哪些模塊。該功能將繼續通過“顯示包含的模塊”按鈕顯示。
在install4j 9中,無需為腳本編譯和腳本編輯器配置JDK,因為為JRE軟件包配置的JDK將自動用于該目的。如果不捆綁JDK,則將與install4j一起運行的JRE作為后備,并且您仍然可以在Java編輯器設置對話框中手動配置JDK。
對于共享的JRE捆綁包,引入了共享ID。這將共享限制在您自己定義和控制的項目范圍內。這也處理了Java 9之后世界中JRE的可變模塊內容。共享ID應該以您控制的域名開頭,并且必須由發布共享JRE的媒體文件以及Java搜索序列要查找共享JRE的媒體文件進行配置。
5、警告已得到改善。現在將警告計數打印在構建摘要中,如果有警告,則文本顏色為橙色。對于命令行構建,如果傳遞了--fail-on-warning命令行參數或在Gradle,Ant和Maven插件中設置了相應的屬性,則可以在這種情況下強制構建失敗。
可以使用特殊的編譯器變量來逐個警告顯示警告。如果您以詳細模式構建,則在每次警告后都會打印一條說明,說明如何禁用它。在install4j IDE中,該描述帶有用于定義相應編譯器變量的超鏈接。
從上面的屏幕快照中可以看到,現在在構建過程中會打印腳本編譯警告。這使得消除新的過時以及在整個項目中發現可能的錯誤變得更加容易。
6、一個Maven插件已添加。以前,只能通過第三方插件進行Maven集成。現在,當發布新版本的install4j時,最新功能將立即可用。
首先,請參閱“hello”示例項目中的pom.xml文件。在插件的配置部分,您可以添加可以傳遞給命令行編譯器的所有選項。
<plugin> <groupId>com.install4j</groupId> <artifactId>install4j-maven</artifactId> <version>9.0</version> <executions> <execution> <id>install4j</id> <phase>package</phase> <goals> <goal>compile</goal> </goals> <configuration> <installDir>/path/to/install4j</installDir> <projectFile>${project.basedir}/hello.install4j</projectFile> </configuration> </execution> </executions> </plugin>
在上面的示例中,指定了install4j安裝目錄。或者,您可以在settings.xml文件中執行此操作,還可以在其中定義許可證密鑰和密鑰庫密碼。
<profiles> <profile> <id>development</id> <properties> <install4j.home>/path/to/install4j</install4j.home> <install4j.licenseKey>CHANGEME</install4j.licenseKey> <install4j.winKeystorePassword>SECRET</install4j.winKeystorePassword> <install4j.macKeystorePassword>SECRET</install4j.macKeystorePassword> </properties> </profile> </profiles> <activeProfiles> <activeProfile>development</activeProfile> </activeProfiles>
除了編譯項目之外,您還可以使用create-jre-bundle Mojo預先創建JRE包。有關更多詳細信息,請參見文檔。
7、macOS單捆綁包歸檔文件現在具有可配置的設置應用程序。用戶首次運行新的歸檔文件安裝或更新時,將啟動配置的安裝程序。這意味著您可以使用屏幕和操作來執行安裝任務,否則這些安裝任務將包含在安裝程序中。
要獲得安裝程序的外觀,您必須選中“Launch in a new process”復選框。如果您以相同的過程啟動安裝程序,則它將使用當前的外觀。不建議將其用于JavaFX或SWT應用程序。
安裝程序應用程序已添加到“Installer->Screens & Actions”步驟中,并且可以包含指向其他安裝程序應用程序的鏈接,例如安裝程序本身。這樣,您可以在不同的上下文中重用屏幕和動作。
8、Linux RPM和DEB歸檔文件現在具有可配置的安裝后和卸載前應用程序。現在,在媒體向導的“Installation options”步驟中,可以配置其他安裝操作。
以前,Linux存檔總是執行一組默認操作,例如添加符號鏈接和安裝服務。對于安裝和卸載的各個階段,只能使用“Extra scripts”步驟中的外殼程序腳本執行其他步驟。
從install4j 9開始,您可以選擇完全禁用額外的安裝操作,也可以選擇在安裝后和卸載前階段選擇自定義安裝程序。
9、現在,“Request privileges”操作可以提升Linux上的特權。在以前的版本中,這僅適用于Windows和macOS。“Linux privilege requirement”屬性可以采用以下三個值之一:“none”和“Require root”對應于install4j先前版本中的“Show failure if current user is not root”屬性。如果該屬性設置為“Try to obtain privileges”,則安裝程序將在GUI模式下以pkexec和在控制臺模式下以sudo或su啟動幫助程序。
pkexec是PolicyKit應用程序,可在大多數Linux發行版中使用,并使用桌面環境的身份驗證對話框以root特權執行提升的幫助程序。
pkexec不能在控制臺模式下使用,因此install4j詢問用戶應該執行哪種命令行身份驗證方法(su或sudo)。
10、ID,名稱,屬性值和注釋的搜索已在“Screens & Actions”步驟,“Styles”步驟以及表單組件對話框中實現。
有兩種單獨的搜索操作,一種用于搜索ID,一種用于搜索各種文本值,都可以通過搜索按鈕或通過其鍵盤快捷鍵進行訪問。
搜索ID時,將包括從當前視圖以某種方式可以訪問的所有屏幕,操作和表單組件。
匹配元素顯示在結果樹的頂部,并帶有指向頂級元素的反向路徑。當您確認搜索向導對話框時,匹配將顯示在install4j IDE中。
對于文本值,將顯示類似的對話框,其中提供了可選的文本匹配選項,例如通配符,正則表達式和區分大小寫。您還可以選擇是否包含元素名稱,注釋或屬性值。
默認情況下,確認對話框時顯示第一個匹配項。您可以通過預先選擇在結果樹中顯示任何其他元素。
11、install4j 9允許在DMG中更靈活地配置頂級文件。掛載DMG時,頂級文件將顯示在啟動器或安裝程序旁邊的Finder中。您還需要它們來設置DMG的樣式。
除了單個文件和符號鏈接,您現在還可以添加.tar.gz文件,以將另一個應用程序,外部安裝程序或文檔包含到DMG。
此外,您現在可以為單個文件指定文件模式。
12、現在,install4j編譯器可以在分發樹中為非Windows媒體文件保留內部符號鏈接。如果不需要此行為,則在“Files->File Options”步驟中,可以取消選擇相應的選項。
13、現在可以自定義“Install a service”操作的重啟行為。重新啟動之前的暫停,最大重新啟動次數以及重置故障計數之后的時間閾值可配置為“Restart on failure”屬性的子屬性。
14、在帶有進度對話框的無人值守模式下,可以選擇顯示警報。可以使用安裝程序應用程序的“Show alerts”屬性或-alerts命令行參數激活此新模式。
更新下載程序模板將執行模式傳播到下載的安裝程序。從install4j 9開始,它還會傳播此警報設置。由于更新下載器是模板,因此不會自動為您的現有項目更新。您將必須在更新下載器中找到名為“設置安裝程序參數”的操作,并將腳本替換為新更新程序應用程序中的腳本。
15、Unix默認目錄模式現在用于分發樹中的手動目錄條目,并且在編輯手動目錄條目時可以被覆蓋。默認模式在“Files->File Options”步驟中配置。
16、自定義安裝程序應用程序現在具有“Create executable”屬性,以防止創建可執行文件。在這種情況下,只能通過ApplicationLauncher API和啟動程序集成來啟動自定義安裝程序應用程序。
17、使用ApplicationLauncher API時可以獲得進度信息。更新下載器和其他安裝程序應用程序通常是通過ApplicationLauncher.launchApplication或ApplicationLauncher.launchApplicationInProcess以無人參與模式啟動的。
以前,無法從已啟動的應用程序獲取進度信息,您只能等到完成為止。從install4j 9開始,傳遞給ApplicationLauncher API的回調具有方法createProgressListener,可以重寫該方法以返回您自己的實現。然后,該進度偵聽器將接收所有進度信息,包括狀態消息,屏幕和操作ID以及進度百分比。
“hello”示例項目中的“HelloGui”類向您展示了如何執行此操作。
ApplicationLauncher.launchApplication("<ID>", null, true, new ApplicationLauncher.Callback() { @Override public void exited(int exitValue) { } @Override public void prepareShutdown() { } @Override public ApplicationLauncher.ProgressListener createProgressListener() { return new ApplicationLauncher.ProgressListenerAdapter() { @Override public void percentCompleted(int value) { // TODO use } @Override public void indeterminateProgress(boolean indeterminateProgress) { // TODO use } //TODO override other methods as required }; } } );
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn