Eclipse被导入混淆(“可从多个模块访问”)
引用简单的.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();
}
}
将.jar文件添加到仅具有文件夹结构(不需要文件)的类路径将导致出现错误。我使用的是JDK 10/12(两者都不起作用)。设置编译器合规性以使整个事情再次工作。在另一台计算机上,如果编译器合规性设置为 ,则此方法可以工作。javax/swing
1.8
Eclipse 2018-09
10
我在Eclipse上,在一个(用于测试目的)新安装的它工作正常。为什么?2019-03
Eclipse 2018-09
编辑 2020 年 6 月(解决方案)
正如答案正确指出的那样,这是很久以前Java内置的限制,直到最近才强加给我们。我在将一个包含数十个依赖项的大项目迁移到 Maven 时接触到了它。2000年左右就有图书馆!有“元库”,它由几个打包在一起的库组成。因此,除了确定仍然需要的东西(与其他内容一起放入垃圾箱!),更新违反规则的库或找到它们的替代品之外,没有其他方法。这花了我很多很多个小时。
最后它成功了,我们有一个很好的Maven项目可以使用。