繁体   English   中英

从Windows批处理文件中自删除jar

[英]Self Delete jar from Windows batch file

我有一个Java应用程序,应该通过在线下载新版本来更新自身,然后应该自我删除,我已经管理了更新,现在需要删除旧的jar文件。 由于我的应用程序将仅在Windows上运行,因此我可以使用bat文件,因此我编写了用于创建应关闭JVM(因此jar文件不会被锁定)的批处理文件的代码,然后应删除然后将jar文件删除bat文件(bat文件应该能够自行删除)。 代码是这样的:

String pat = new File("delete.bat").getAbsolutePath();
FileWriter fw = new FileWriter(pat);
PrintWriter pw = new PrintWriter(fw);
pw.println("taskkill /F /IM \"java.exe\"");
pw.println("DEL /F \""+ jarname +"\"");
pw.println("DEL /F \"delete.bat\"");
pw.close();
System.out.println("cmd /c START \"\" \"" + pat + "\"");
Runtime.getRuntime().exec("cmd /c START \"\" \"" + pat + "\"");

实际效果还不错,它删除了jar和bat,但是...删除后仍然打开了命令提示符,这真难看到:/我什至尝试在DEL / F“ delete.bat”之后放置退出,但是由于蝙蝠已被删除,因此无法读取退出命令...关于如何关闭提示的一些想法?

您可以通过两种方式关闭命令提示符

  1. 在bat脚本pw.println(“ exit”)的最后一行添加Exit。
  2. 用start cmd启动CMD

    Runtime.getRuntime()。exec(“ start \\” \\“ \\”“ + pat +” \\“”);

我解决了Desktop.getDesktop()。open(new File(pat));

希望这可以帮助某人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM