如果已安装,则无法重新运行 Java JPackage 安装程序,第二次只是退出而不发出警告

Pau*_*lor 6 java installation java-14 jpackage

如果已安装,则无法重新运行JPackage安装程序,第二次似乎只是在没有警告的情况下退出,这在 Windows 上是正确的行为吗?

你可能会问我为什么要这样做?

就我而言,我正在尝试为我的 Java 应用程序构建 JPackage 安装程序,因此我正在构建它并安装它,然后调整设置,重建它并尝试重新安装。我花了一些时间才发现除非我卸载第一个安装(使用控制面板,程序和功能),否则我无法重新安装它

我的案例可能不是通常的用例,但它在没有给出任何原因的情况下退出,感觉不正确。

这也意味着,如果我向客户部署新版本,并且稍后需要修改安装程序,则必须修改版本号才能让用户重新安装,这通常可能是最佳实践,但我并不是特别想要如果应用程序本身没有更改,则执行此操作。

更新:自从通过查看 TaskManager 发现它仍在运行,但似乎没有做任何事情并且没有向用户提供任何指示!

Dun*_*ncG 6

不知道这在 Mac 或 Linux 上是否有帮助,但 Windows 安装程序会在您运行应用程序时自动删除旧版本的应用程序,因此您只需要设置一个方案来更改每个版本的版本号,以避免每次都卸载旧版本。

为此,您可以将版本号设置为“YY.MM.DDHH”,这样版本号每小时都会发生变化并减少卸载。

蚂蚁步骤:

<tstamp>
    <format property="appver"     pattern="yy.MM.ddHH" />
</tstamp>

<exec executable="jpackage">
    <arg line="--app-version ${appver}"/>
    ...
</exec>
Run Code Online (Sandbox Code Playgroud)

这个的CMD版本:

set appver=%date:~6,2%.%date:~3,2%.%date:~0,2%%time:~0,2%
jpackage --app-version %appver% ...
Run Code Online (Sandbox Code Playgroud)

Linux:

appver=$(date +%y.%m.%d%H)
jpackage --app-version $appver
Run Code Online (Sandbox Code Playgroud)