如何删除java中由windows使用/锁定的文件

kog*_*gut 6 java windows file-io jar

我有一些应用程序,它有能力自我更新.它从网上下载jar文件,然后尝试通过下载一个来替换用过的jar来运行这个应用程序.但我不能这样做,因为文件被Windows锁定,因为应用程序仍在运行.

有人知道一些解决方法吗?

Mat*_*att 4

对此的流行解决方案之一是将更新程序作为单独的程序运行。您是否注意到 Firefox 更新后必须重新启动?这是因为一个单独的进程 (updater.exe) 正在更新文件,然后再次启动 Firefox。

你可以尝试这个方法。我看到的唯一障碍是尝试自动关闭主程序以自行关闭。执行此操作的唯一可移植方法(在我看来)是主应用程序通过本地套接字等待终止信号,并且更新程序可以通过本地网络发送命令。您还必须考虑的另一件事是更新程序必须在单独的 java 进程中运行。如果您的主程序只是创建一个新的 Updater 对象,则 Updater 将与主程序的 JVM 共存,这会让您回到最初的状态。