【发布时间】:2017-06-23 15:49:15
【问题描述】:
Oracle JavaDocs 解释说 IllegalAccessError 是
"如果应用程序尝试访问或修改字段,或者要 调用它无权访问的方法。”
我尝试动态加载一个类,但我得到了这个异常。
如果我理解正确,当您使用类加载器动态加载带有私有包的类时会发生 IllegalAccessError
我要加载的类正在使用
org.xml.sax.helpers.SecuritySupport
这也在以下网址中的描述中说明 http://grepcode.com/file/repository.springsource.com/org.apache.xmlcommons/com.springsource.org.apache.xmlcommons/1.3.4/org/xml/sax/helpers/SecuritySupport.java 那个
很遗憾,我们无法使用反射加载类 * 因为该类是包私有的。而且班级有 * 包私有,因此 API 不会暴露给其他人 * 可以使用它们来规避安全性的代码。因此, * 我们接受直接引用可能失败的风险 * 在一些 JDK 1.1 JVM 上,即使我们永远不会执行 * 这种情况下的代码。叹息……
我怎样才能动态加载它呢?我必须让它工作。 另外,如果我在使用类加载器时遇到错误,我无法从中恢复,那么我怎么能提前知道我无法加载这个类呢?
提前感谢任何提供帮助的人
【问题讨论】:
标签: java classloader dynamic-loading