您好,我有以下问题:Java进程可以删除加载的JAR吗?
在卸载过程中,我加载了一个JAR(jdbc-driver)。
URL pDriverJar = jarToDelete.toURI().toURL();
URL[] lURLList = new URL[]{pDriverJar};
URLClassLoader lLoader = new URLClassLoader(lURLList, Thread.currentThread().getContextClassLoader());
Thread.currentThread().setContextClassLoader(lLoader);
Class<?> aClass = Class.forName("jdbc.Driver"); // was Oracle: oracle.jdbc.OracleDriver but should not be important
if(jarToDelete.delete()){
System.out.println("deleted");
}else {
jarToDelete.deleteOnExit();
}
JVM终止后,jar仍然存在。
作为一个工作周,我创建了一个临时文件,并将Jar复制到该临时文件。但是现在Tempfile不会被删除。
我读过,如果ClassLoad是GC,加载的罐子可以被删除。
有没有人有想法,如何删除此文件?