Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 临时文件赢得';t退出时删除-这是为什么?_Java_File - Fatal编程技术网

Java 临时文件赢得';t退出时删除-这是为什么?

Java 临时文件赢得';t退出时删除-这是为什么?,java,file,Java,File,我正在尝试在退出时删除这些临时文件: -“hsperfdata\u用户” -“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(

我正在尝试在退出时删除这些临时文件: -“hsperfdata\u用户” -“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());
        }
    }
}

“复制”问题是指删除您创建的文件-我没有创建这些临时文件。故意归档。它们会自动创建。

在Windows上不可能这样做,因为当DLL尝试删除自身时,仍会将其加载到VM中。如果出现问题,则应将文件永久解压缩到安装位置并设置相应的
java.library.path
set。我想重申,这是不可能的,因为由于技术限制,java没有提供从JVM安全删除库的
System.unload(…)
方法


有可能:

我们无法知道
temp
包含什么(更不用说它的类型了)
temp
中可能没有任何内容。可能存在@BrandonIbbotson的副本,但我可以看到那里的temp文件-它们不会删除。请参阅建议的副本并检查文件的用户权限您是否验证了
deleteOnExit
分支是否已实际到达?