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 部分,那么这些导入错误就会消失。
但这只有在我们通过 …
我在 maven 项目中使用 hibernate 4.3.0。当我尝试运行 mvn dependency:tree 时,它显示 dom4j 中 xml-apis.jar 的编译问题。
[信息] | +- dom4j:dom4j:jar:1.6.1:编译
[信息] | | - xml-apis:xml-apis:jar:1.0.b2:编译
如果我像下面这样从 hibarate-core 中排除 xml-apis jar,这个问题就得到解决。
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.0.Final</version>
<exclusions>
<exclusion>
<artifactId>xml-apis</artifactId>
<groupId>xml-apis</groupId>
</exclusion>
</exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题而不排除 hibernate-core 中的 jar ?
引用简单的.jar文件时,Eclipse会显示错误消息:
可以从多个模块中访问包java.awt:<未命名>,java.desktop
例如,当.jar文件中包含javax.awt或时,就会发生这种情况javax.swing。
最简单的示例如下:
package test;
import javax.swing.JDialog;
public class Test {
public static void main(String[] args) {
new JDialog();
}
}
Run Code Online (Sandbox Code Playgroud)
仅使用文件夹结构javax/swing(无需文件)将.jar文件添加到类路径中将导致出现错误。我正在使用JDK 10/12(均无效)。设置编译器遵从性1.8可使整个过程再次运行。在另一台与Eclipse 2018-09此兼容的机器上,编译器遵从性设置为10。
我在Eclipse 2019-03上(出于测试目的)在新安装的设备Eclipse 2018-09上工作正常。为什么?