您好,我有以下問題: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,加載的罐子可以被刪除。
有沒有人有想法,如何刪除此文件?