将 Java 与模块一起使用

Add*_*dem 1 java eclipse module

我刚刚升级到 Java 11,发现当我在 Eclipse 中启动一个新项目时,它会自动包含一个模块和module-info.java文件。我简单地查了一下,似乎我可以忽略它,但是当我导入源文件时,这些文件会自动添加到我没有创建的某个包中。我将包重命名为default因为这只是一个小玩具项目,并尝试从所有文件中删除所有包声明。但是,我现在在每个文件的开头收到错误消息“必须声明一个命名包,因为此编译单元与命名模块“exampleMod”相关联”,并且在模块文件上,“类型 java.lang.Object 不能是已解决。它是从所需的 .class 文件间接引用的”。

在类似的问题上,主要答案说清理项目或重新安装Eclipse。都没有为我解决问题。

我还尝试添加package default;到源文件的顶部,但这并没有解决问题。

how*_*ger 5

使用 Java 平台模块系统 (JPMS) 禁止.java在默认包中包含文件。但您不必使用 JPMS。如果您不想使用 JPMS 并且想将文件放入默认包中,只需删除该module-info.java文件即可。.java

当您创建新的 Java 项目时,系统会询问您是否需要该文件module-info.java

在此输入图像描述

如果您不想使用 JPMS,请单击“不创建”。可以通过添加文件将非 JPMS 项目转换为 JPMS 项目module-info.java:右键单击项目文件夹并选择“配置”>“创建 module-info.java”