彩票走势图

多平台Java安装文件生成工具install4j v9.0版本新鲜出炉

原创|产品更新|编辑:郑恭琳|2021-02-24 10:22:54.300|阅读 1014 次

概述:install4j 9.0现在可以自定义安装程序的外观。默认情况下,外观设置为FlatLaf,这是一种跨平台外观,可自动检测暗或亮模式。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

install4j 9.0引入了以下值得注意的新功能:

1、现在可以自定义安装程序的外观。默认情况下,外观设置为FlatLaf,这是一种跨平台外观,可自动检测暗或亮模式。



您可以在新的“外观”步骤中调整外观。您可以在两个内置主题(用于亮模式)和两个内置主题(用于暗模式)之间进行选择。在macOSWindowsLinux上实现了自动检测明暗模式。在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 CorrettoAzul ZuluJDK提供程序已添加到install4j要使用这些JDK,您不再需要在所有必需的平台上预先创建捆绑包,而可以在安装过程中让install4j完成。


Liberica之外,Azul ZuluJavaFX的另一个选项,用于最新的Java版本。它还提供了没有JavaFXJava 8,从而使JRE捆绑包变得更小。此外,最近的发行版已经包含了针对具有Apple Silicon的计算机的macos-aarch64目标。


Amazon Corretto是一个OpenJDK发行版,致力于将来自主分支机构和其他来源的其他修补程序和修补程序纳入LTS版本。最近,他们也开始增加对最新功能版本的支持。


3、install4j现在可以为macOS生成通用二进制文件,以同时支持IntelApple 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命令行参数或在GradleAntMaven插件中设置了相应的属性,则可以在这种情况下强制构建失败。


可以使用特殊的编译器变量来逐个警告显示警告。如果您以详细模式构建,则在每次警告后都会打印一条说明,说明如何禁用它。在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”复选框。如果您以相同的过程启动安装程序,则它将使用当前的外观。不建议将其用于JavaFXSWT应用程序。


安装程序应用程序已添加到Installer->Screens & Actions”步骤中,并且可以包含指向其他安装程序应用程序的链接,例如安装程序本身。这样,您可以在不同的上下文中重用屏幕和动作。


8、Linux RPMDEB归档文件现在具有可配置的安装后和卸载前应用程序。现在,在媒体向导的“Installation options”步骤中,可以配置其他安装操作。

以前,Linux存档总是执行一组默认操作,例如添加符号链接和安装服务。对于安装和卸载的各个阶段,只能使用“Extra scripts”步骤中的外壳程序脚本执行其他步骤。

install4j 9开始,您可以选择完全禁用额外的安装操作,也可以选择在安装后和卸载前阶段选择自定义安装程序。


9、现在,Request privileges”操作可以提升Linux上的特权。在以前的版本中,这仅适用于WindowsmacOS。“Linux privilege requirement”属性可以采用以下三个值之一:“none”和“Require root”对应于install4j先前版本中的“Show failure if current user is not root”属性。如果该属性设置为“Try to obtain privileges”,则安装程序将在GUI模式下以pkexec和在控制台模式下以sudosu启动帮助程序。


pkexecPolicyKit应用程序,可在大多数Linux发行版中使用,并使用桌面环境的身份验证对话框以root特权执行提升的帮助程序。


pkexec不能在控制台模式下使用,因此install4j询问用户应该执行哪种命令行身份验证方法(susudo)。


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.launchApplicationApplicationLauncher.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@capbkgr.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP