Um JAR carregado pode ser excluído pelo Java-Process?
Olá, tenho o seguinte problema:
Dentro de um processo de desinstalação, carrego um 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();
}
Após o término da JVM, o jar ainda existe.
Como solução alternativa, criei um arquivo temporário e copiei o Jar nesse arquivo temporário. Mas agora o Tempfile não será excluído.
Eu li que, se o ClassLoad for GC, os frascos carregados podem ser removidos.
Alguém tem uma idéia, como excluir este arquivo?