如何自己删除可执行Jar文件?

时间:2015-02-09 20:33:04

标签: java multithreading

我开发了一个简单的java应用程序,应用程序(可执行文件夹文件)是否有可能找到当前路径并在一段时间后从当前位置和回收站中自行删除它。

4 个答案:

答案 0 :(得分:2)

不,当java运行时启动并使用此jar文件时,Windows会阻止它被删除。在Linux等其他操作系统中,即使使用了文件,也可以删除文件。

答案 1 :(得分:0)

已经有问题/答案向您展示如何获取当前运行的jar文件。请记住,这些方法在不同平台上并不一致:

How to get the path of a running JAR file?

用Java删除文件也很简单:

import java.io.File;
...
new File("c:\\path\\to\\whatever.jar").delete();

在没有文件锁定的操作系统上,您只需删除正在运行的jar,因为它已经加载到内存中。在锁定文件的操作系统上,如果JVM决定锁定当前正在执行的jar,则可能无法实现。

答案 2 :(得分:0)

Windows严格限制您执行此操作直到jar正在使用

就是这样:

Close Before Unstalling

在Linux中你可以在这里How to delete a executing jar file

答案 3 :(得分:0)

为了删除jar文件,我建议:

  • 创建bat / sh文件
  • 运行文件
  • 使用System.exit方法
  • 关闭jar文件

在bat / sh文件中:

  • 循环直到成功删除
  • 删除自身内的bat / sh文件(与jar文件bat / sh文件不同,可以自行删除)