您好我有以下问题:
在卸载过程中,我加载了一个 JAR(jdbc 驱动程序)。
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 复制到该临时文件中。但是现在临时文件不会被删除。
我读过,如果 ClassLoad 是 GC,则可以删除加载的 jar。
有没有人有想法,如何删除这个文件?