有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将类添加到Swing包结果是一个可见函数上的IllegaAccessError

我正在使用与其他Swing小部件相同的结构/样式创建一个新的小部件。为此,我将我的UI类放在javax中。摆动普拉夫。基本的作为UI实现的一部分,我使用javax。摆动普拉夫。基本的LazyActionMap类。Eclipse认为它是可见的,因为它有相同的包名,但是在运行时我得到了一个java。lang.IllegalAccessError异常(可能在运行时不可见)

看起来,即使我给了我的类相同的包名,Eclipse也认为它们在同一个包中,但在运行时它们不是

我有没有做错什么?我之所以尝试查看内部库类,是因为对于小部件的原型,我正在重新使用JSlider UI代码。在未来,我将过渡到从头开始绘制滑块


共 (1) 个答案

  1. # 1 楼答案

    通过不同的类加载器加载的类被认为属于不同的包。在编译时,编译器将不知道您将如何部署,因此看不到错误。您可以使用-Xbootclasspath/a:将代码作为系统类添加,但这是非常顽皮的,您不应该这样做

    您应该将自己的类放在自己的包中,远远超出javaxjava.*类甚至不会被非引导类装入器装入