我刚刚升级到 Java 11,发现当我在 Eclipse 中启动新项目时,它会自动包含一个模块和 module-info.java
文件。我简单地查了一下,似乎我可以忽略它,但是当我导入源文件时,这些文件会自动添加到我没有创建的某个包中。我将包重命名为 default
因为这只是一个小玩具项目,并尝试从所有文件中删除所有包声明。但是,我现在在每个文件的开头收到错误消息“必须声明一个命名包,因为此编译单元与命名模块“exampleMod”相关联”,并且在模块文件上,“类型 java.lang.Object 不能是已解决。它是从所需的 .class 文件间接引用的”。
在类似的问题上,主要答案说清理项目或重新安装Eclipse。都没有解决我的问题。
我还尝试将 package default;
添加到源文件的顶部,但这并没有解决问题。
最佳答案
使用 Java 平台模块系统 (JPMS) 禁止在默认包中包含 .java
文件。但您不必使用 JPMS。如果您不想使用 JPMS 并且要将 .java
文件放入默认包。
当您创建新的 Java 项目时,系统会询问您是否需要文件 module-info.java
:
如果您不想使用 JPMS,请单击“不创建”。可以通过添加 module-info.java
文件将非 JPMS 项目转换为 JPMS 项目:右键单击项目文件夹并选择配置 > 创建 module-info.java.
关于java - 将 Java 与模块一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54838742/