我有一个使用 XML 解析的 Java 程序,因此它使用了许多库,例如:
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
...
import org.w3c.dom.Document;
import org.w3c.dom.Element;
...
当我使用 Java 1.8 时,它可以编译并工作。javac
它使用来自 OpenJDK 12 的命令行编译器进行编译:
[root@mn ~]# javac --version
javac 12.0.1
[root@mn ~]# alternatives --config javac
...
* 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.fc30.x86_64/bin/javac)
+ 2 java-latest-openjdk.x86_64 (/usr/lib/jvm/java-12-openjdk-12.0.1.12-1.rolling.fc30.x86_64/bin/javac)
但是当我在 Eclipse 中将“编译器合规级别”从 1.8 更改为 11 时,我遇到了一些问题。然后 Eclipse 显示了很多错误,例如:
The package javax.xml.validation is accessible from more than one module: <unnamed>, java.xml
...
Element cannot be resolved to a type
我的 Eclipse 版本:
Version: 2019-03 (4.11.0)
Build id: 20190314-1200
编辑
我将 Eclipse 更新为:
Version: 2019-06 (4.12.0)
Build id: 20190614-1200
错误是一样的。在编译时:
The package org.w3c.dom is accessible from more than one module: <unnamed>
在运行时:
Exception in thread "abc" java.lang.Error: Unresolved compilation problems:
The package org.w3c.dom is accessible from more than one module: <unnamed>, java.xml
我可以使用命令行 JDK12 javac/java 编译和运行这个程序。
我的问题与Eclipse Java 编辑器突出显示错误但代码编译不同,因为我可以在“问题”选项卡中看到问题并且我无法从 Eclipse 运行程序。
在 Eclipse 中使用 Java11/12 编译我的程序应该怎么做?
解决方案
我xml-apis-1.3.04.jar
从我的CLASSPATH
程序中删除并从 Eclipse 编译和运行。谢谢你嚎叫:-)