为什么install4j会锁定安装目录下的所有zip文件?

Why does install4j lock all zip files in the installation directory?

我的应用程序曾经有一个更新功能,该功能适用​​于存档而不适用于已安装的应用程序(访问权限问题)。我转到了 install4J,现在情况正好相反,更新对已安装的应用程序非常有效,但对归档文件无效。

对于档案,更新程序下载新档案但不提供解压缩。因此,我试图恢复我以前的档案更新方法,但没有成功。下面是对档案的过程和我面临的问题的快速描述。

  1. 如果用户检查新更新并找到更新,应用会下载一个文件update.zip

2)a) 我的应用程序的起点是Launcher.main(),如果没有更新文件,它会调用App.main()

b) 如果有 update.zip 文件,解压文件,删除它并开始 App.main()

问题是 zip 文件没有被删除,它被一个进程锁定了。我发现我可以在目录 xxx.zip 中创建任何 zip 文件,启动我的应用程序并且 zip 文件被报告为我的应用程序正在使用。为什么 install4J 会锁定所有 zip 文件?我可以阻止这种情况吗?

提前感谢您的帮助

如果有帮助,代码和错误在这里:
https://github.com/akasolace/HO/blob/81e250534ed864ea84ab83ed167d519767f7bff3/src/main/java/core/HOLauncher.java#L39

目标为“.”的“扫描目录”条目会将安装目录下的所有.jar和.zip文件添加到class路径下,所以会被JVM锁定。

您必须将 ZIP 文件下载到其他目录。