一尘不染

Java 由于对所需库rt.jar的限制,对类的访问限制?

java

我试图在不重新创建存根的情况下编译由IBM的WSDL2Java在Java5上创建的Java 1.4代码,并在Eclipse中看到此错误。我的假设是,只要运行时jar可用(它们存在),生成的存根就应该编译。

Access restriction: The type QName is not accessible due to restriction on required library C:\Program Files\Java\jdk1.5.0_16\jre\lib\rt.jar

完整的班级名称是 javax.xml.namespace.QName

这到底是怎么回事?这是我要用香肠重构猪的情况吗?我最好重新创建存根吗?


阅读 440

收藏
2020-02-26

共1个答案

一尘不染

还有另一个解决方案,也可以。

  1. 转到项目属性中的“ 构建路径”设置。
  2. 删除JRE系统库
  3. 加回去;选择“添加库”,然后选择JRE系统库。默认为我工作。
    之所以可行,是因为你在不同的jar文件中有多个类。删除并重新添加JRE库将使正确的类成为第一位。如果需要基本解决方案,请确保排除具有相同类的jar文件。

对我来说,我有:javax.xml.soap.SOAPPart在三个不同的jar:axis-saaj-1.4.jar,saaj-api-1.3.jar和rt.jar

2020-02-26