我在OpenJDK和Open上测试了不同版本Java上的三台Windows机器和两台Linux VPS. Oracle JDK.它完美运行,然后突然之间,它只在我的IDE中工作,虽然我没有改变任何相关的代码,我无法想象是什么导致这一点.
系统中的普遍代码:
Class> cls = (session == null ? secjlcl : session.getJLCL()).loadClass(name);
Logger.log(JavaLoader.class.isAssignableFrom(cls) + " - " + cls + " - " + cls.getSuperclass().getName());
if (JavaLoader.class.isAssignableFrom(cls)) {
我的ClassLoader:
public class JavaLoaderClassLoader extends URLClassLoader {
public JavaLoaderClassLoader(URL[] url,ClassLoader parent) {
super(url);
}
private HashMap
一个注意事项,我希望许多类加载器在同一名称/包中加载不同的文件,因此我使用单独的类加载器将它们分开,但是在测试中,未经过测试.
现在,这在过去完美无缺,我不知道为什么它会停止.我会假设我破坏了一些东西,但代码仍在我的IDE中运行?
最佳答案
这似乎是你的错误:
public JavaLoaderClassLoader(URL[] url,ClassLoader parent) {
super(url);
}
您不是通过超级构造函数将父级安装为父类加载器.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。