use*_*339 7 eclipse java-9 eclipse-photon java-11
org.xml.sax 和 org.w3c.dom 类不适用于 JAVA 11 和 Eclipse Photon 4.9 & 4.10 RC2 构建
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Text;
import org.xml.sax.DocumentHandler;
import org.xml.sax.ErrorHandler;
import org.xml.sax.DTDHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.AttributeList;
import org.xml.sax.InputSource;
import org.xml.sax.Locator;
Run Code Online (Sandbox Code Playgroud)
这些从 org.w3c.dom 和 org.xml.sax 导入的类不适用于 Eclipse SDK
版本:2018-09 (4.9) 版本号:I20180906-0745
在 eclipse 工作区中导入项目后(下载了兼容 JAVA 11 的 Eclipse 4.9 版本。),这在编译这些类的过程中开始出现错误。
如果您只是使用,此错误就会消失
import org.xml.sax.*;
import org.w3c.dom.*;
Run Code Online (Sandbox Code Playgroud)
而不是通常的完整包名称。但这只能消除错误,但不能完全帮助。因此,如果我们更进一步,想要使用和从 sax 或 w3c 导入任何特定的特定类,它不会提供选项,您甚至无法进行显式导入。所以这种方法是没有用的。
另一种解决方法是,如果我们将上面的 JRE 系统库 (JAVA 11) 放在 ECLIPSE 工作区的配置构建路径选项的 order & export 部分,那么这些导入错误就会消失。
但这只有在我们通过 Eclipse 的编译器使用 JAVA 11 进行编译时才会发生。如果我们在 Eclipse 中切换回 JAVA 8 编译器,则相同的组合可以正常工作。
JAVA 9 也会出现此问题。
有人可以帮忙解决这个问题吗?
已经有一个 Eclipse 错误提交,但还没有任何解决方案:https : //bugs.eclipse.org/bugs/show_bug.cgi?id=536928#c12
我不认为这个问题是 Eclipse IDE 特有的。
Java 11 现在拥有自己的 xml 包,其中包括“xml-api”等外部库中存在的所有 XML 解析 API。
因此,如果您使用此类与 XML 相关的外部 API,Java 编译器会发现同一类的多个源,因此无法解析它们。
我从 POM 定义的依赖项中排除了所有 xml-api 工件,这些工件一直从 Maven 存储库中提取“xml-api”工件。
使用
mvn 依赖项:tree -Dverbose -Dincludes xml-api:xml-api
跟踪负责拉取 XML api 的工件并排除它们。
我能够解决我的 Maven 项目中的所有此类编译错误。
Java 8 没有将 XML API 打包到其系统库中,因此在切换回 Java 8 后您没有观察到任何问题。
| 归档时间: |
|
| 查看次数: |
8228 次 |
| 最近记录: |