2017-02-11 60 views
0

我想退出时删除这些临时文件: - “hsperfdata_user” - “JNativeHook-2.1.0” - “JNA-196922”临时文件将不会在退出删除 - 这是为什么?

它不会出现,他们正在删除!

if (temp != null) { 
    for (File file : temp.listFiles()) { 
     if (file.getName().contains("JNative") || file.getName().contains("rar") || file.getName().contains("hsper") || file.getName().contains("jna") || file.getName().contains("dll")) { 
      file.deleteOnExit(); 
      System.out.println(file.getName()); 
     } 
    } 
} 

“重复”问题是指删除已创建的文件 - 我没有创建这些临时文件。文件故意。他们自动创建。

+0

我们不知道什么'temp'包含(更不用说它的类型)的方式。 'temp'可能什么也没有。 – byxor

+1

的可能的复制[deleteOnExit不删除文件(http://stackoverflow.com/questions/24758520/deleteonexit-not-deleting-file) – Janar

+0

@BrandonIbbotson虽然我可以看到临时文件存在 - 他们不删除。 – Exuro

回答

0

它不能在Windows,因为DLL仍然加载到虚拟机时,它试图删除自身。如果这是一个问题,该文件应被永久解压到安装位置及相应的java.library.path集。我想重申,这是不可能的,因为Java没有提供一个System.unload(...)方法从JVM安全由于技术限制删除库。

这也许可能:https://github.com/kwhat/jnativehook/issues/148#issuecomment-282173982

相关问题