之前我使用了 Izpack 来安装我的 Java 应用程序,当用户想要安装新版本时,他们只需重新安装到同一位置(C:/Program Files/Jthink/Jaikoz),这将用新文件替换旧文件,无需先卸载旧版本。
现在,我已经使用 JPackage(现已成为 Java 的一部分,JDK 14)构建了最新版本的应用程序安装程序,仍然安装到同一位置。问题是,由于 JPackage 强制执行新的文件结构(应用程序和运行时子目录),我的文件不再覆盖现有文件,因此现在我有两个安装程序混淆在一起。
所以我在最新版本中添加了一些代码来删除我启动应用程序时不再需要的旧文件。但问题是,这会失败,因为我没有权限删除这些文件,我认为这是因为它们是由安装程序安装的(我不确定)。
例如,这里我们展示了旧文件组,只有系统管理员才有权限修改/删除这些文件。 如果我以管理员身份运行,则代码可以毫无问题地删除文件,但通常客户不会以管理员身份运行,因此这并没有太大帮助。
我的选择是什么?
现在,我已经使用 JPackage(现已成为 Java 的一部分,JDK 14)构建了最新版本的应用程序安装程序,仍然安装到同一位置。问题是,由于 JPackage 强制执行新的文件结构(应用程序和运行时子目录),我的文件不再覆盖现有文件,因此现在我有两个安装程序混淆在一起。
所以我在最新版本中添加了一些代码来删除我启动应用程序时不再需要的旧文件。但问题是,这会失败,因为我没有权限删除这些文件,我认为这是因为它们是由安装程序安装的(我不确定)。
例如,这里我们展示了旧文件组,只有系统管理员才有权限修改/删除这些文件。 如果我以管理员身份运行,则代码可以毫无问题地删除文件,但通常客户不会以管理员身份运行,因此这并没有太大帮助。
我的选择是什么?