0

我有一个使用 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 编译和运行。谢谢你嚎叫:-)

4

0 回答 0