Java 临时文件赢得';t退出时删除-这是为什么?
我正在尝试在退出时删除这些临时文件: -“hsperfdata\u用户” -“JNativeHook-2.1.0” -“jna-196922” 他们似乎没有删除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(
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
分支是否已实际到达?