When the class loader reads something from a JAR file, it will lock that JAR file so that it cannot be deleted, and there is no way to explicitly dispose of a ClassLoader. Only in Java 7 will there be a solution (see the ApplicationLoadingSpec after some changes I did off-screen).