我有一个情况,我需要在我的应用程序中创建很多类加载器,以便在用户提供的脚本运行时暂时使一些代码可见。我正在使用一个URLClassLoader
为此,它效果很好。
当脚本终止时,我想“卸载”或“关闭”类加载器以释放资源。
将类加载器的引用设置为是否足够null
?我特别想知道我最终是否会用完文件句柄,因为额外的类位于 JAR 文件中。
PS:必须使用 Java 5 及更高版本。是的,我知道...
有点晚了,但希望这对后来提出这个问题的人(像我一样)有帮助。
使用 Java 7,close() http://docs.oracle.com/javase/7/docs/api/java/net/URLClassLoader.html#close()方法已添加到 URLClassLoader,这正是 OP 所要求的。
EDIT(感谢@Hot Licks):好吧,所以不是exactlyOP 要求什么。它不会释放所有资源,或使资源和加载器可收集。它只是阻止使用类加载器加载更多资源。它does但是,请关闭已加载的 jar 文件URLClassLoader
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)