Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果已经安装,则无法重新运行Java JPackage安装程序,第二次仅会在没有警告的情况下退出_Java_Installation_Java 14_Jpackage - Fatal编程技术网

如果已经安装,则无法重新运行Java JPackage安装程序,第二次仅会在没有警告的情况下退出

如果已经安装,则无法重新运行Java JPackage安装程序,第二次仅会在没有警告的情况下退出,java,installation,java-14,jpackage,Java,Installation,Java 14,Jpackage,无法重新运行JPackage安装程序如果已安装,则第二次运行时,似乎会在没有警告的情况下退出,这在Windows上是否正确 你可能会问我为什么要这么做 在我的例子中,我试图为我的Java应用程序构建一个JPackage安装程序,所以我构建它并安装它,然后调整设置,重建它并尝试重新安装。我花了一些时间才发现,除非卸载第一次安装(使用控制面板、程序和功能),否则无法重新安装 我的案例可能不是通常的用例,但它只是在没有给出任何理由的情况下退出是不正确的 这还意味着,如果我向客户部署了新版本,并且我以后

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

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

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

我的案例可能不是通常的用例,但它只是在没有给出任何理由的情况下退出是不正确的

这还意味着,如果我向客户部署了新版本,并且我以后需要修改安装程序,而不是修改版本号以便用户重新安装,这通常可能是最佳做法,但如果应用程序本身没有更改,我不会特别想做这件事


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

这可能会修复重新安装的问题

在我的例子中,我创建jpackage安装程序,安装它,创建一个新的安装程序(基于Inno安装程序),然后自动卸载jpackage

我认为,在您的情况下,可能需要卸载第一次安装,因为安装程序可能会检测到它已经安装了相同的版本

在我的例子中,我使用Ant任务自动卸载

  <target name="uninstall" depends="init">
    <exec executable="wmic.exe">
      <arg value="product" />
      <arg value="where" />
      <arg value="description='${full.name}'" />
      <arg value="uninstall" />
    </exec>
  </target>

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

要做到这一点,您可以将版本号设置为“YY.MM.DDHH”,以便版本号每小时更改一次,并减少卸载

蚂蚁步骤:

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

<exec executable="jpackage">
    <arg line="--app-version ${appver}"/>
    ...
</exec>
set appver=%date:~6,2%.%date:~3,2%.%date:~0,2%%time:~0,2%
jpackage --app-version %appver% ...