是否可以卸载Java标准库——即在java.*包中定义的那些库?
我的应用程序需要运行JUnit测试,每个测试都有自己的ClassLoader
,就像这样:
for(String testClass : testClasses) {
CustomClassLoader cl = new CustomClassLoader(this.getClass().getClassLoader());
Class<?> _class = cl.loadClass(testClass);
JUnitCore junit = new JUnitCore();
Result result = junit.run( _class );
registerResult(result, cl);
}
我遇到的问题是一些类没有被卸载,包括java.*类。
如果我不卸载它们,那么如果测试类使用静态方法存储对象,例如java.security.Security
类提供的方法,那么会出现ClassCastException
错误。
有什么办法可以强制卸载它们吗?