一个 jar 文件可以在 运行 时间重命名或删除自己?

A jar file can rename or delete itself at run time?

我正在寻找一种在 运行 时间自行重命名或删除 jar 文件的解决方案。我有一些尝试,例如使用批处理文件 运行s 脚本在 System.exit(0) 命令之前重命名 jar 文件:

public class Test {

    public static void main(String[] args) {
        System.out.println("********start jar file*****");
        try {
            Runtime.getRuntime().exec("file.bat");
            System.exit(0);
        } catch (IOException ex) {
            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

批处理文件包含以下脚本:

cd c:\users\user
ren "path to jar file" newName.jar

但是,它不能重命名 jar 文件。

您需要的是包装脚本。编写一个程序(另一个 jar,如果你愿意的话),用户启动它启动你的应用程序,如果没有新版本则退出。如果有新版本可用,删除旧版本,下载新版本,然后启动新版本并退出启动器。