必须声明一个命名包eclipse,因为这个编译单元与命名模块相关联

J. *_*Doe 16 java error-handling

我刚刚下载了eclipse for Java昨天但是当我试图制作我的第一个程序时,我一直收到这个错误:

must declare a named package eclipse because this compilation unit is associated to the named module x. 
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

小智 26

只需在Project Explorer选项卡中删除module-info.java即可.

  • 赞成,尽管这个解决方案有效,但对_为什么_删除它的小解释会很有帮助。 (16认同)
  • 为什么 Eclipse 首先强迫我们创建一个? (11认同)
  • 很多问题只要删除这个文件就可以解决哈哈 (2认同)

Dee*_*ama 12

错误原因:创建类时包名留空。这使用默认包。从而导致此错误。

快速解决:

  1. 创建一个包,例如。helloWorld里面src的文件夹。
  2. 移动helloWorld.java该包中的文件。只需拖放包裹即可。错误应该消失。

解释:

  • 我的 Eclipse 版本:2020-09 (4.17.0)
  • 我的Java版本:Java 15, 2020-09-15

最新版本的Eclipse需要java11或更高版本。该module功能在 java9 及以后版本中引入。它于 2005 年被提议用于 Java7,但后来被暂停。Java是面向对象的。而module是moduler的方式,在C等语言中可以看到。实现起来比较困难,因此发布需要很长时间。资料来源: 了解 Java 9 模块

w ^母鸡你在Eclipse中创建一个新的项目,然后默认模块的功能被选中。在 Eclipse-2020-09-R 中,会出现一个弹出窗口,要求创建module-info.java文件。如果您选择,don't createmodule-info.java不会创建,您的项目将不会出现此问题。

最佳实践是在创建项目时,在给出项目名称之后。单击next按钮而不是finish。在底部的下一页上,它要求创建module-info.java文件。根据需要选择或取消选择。

如果选中:(默认情况下)单击finish按钮并为模块命名。现在在创建类时不要忘记提供包名称。每当您创建一个类时,只需给出包名称。任何名称,只是不要将其留空。

如果取消选择:没有问题


小智 7

“在项目浏览器选项卡上删除module-info.java”答案是最简单,最直接的答案,但是

对于那些谁愿意一点点更多的了解或发生了什么,下面的替代方法可能需要控制;

  • 进行更加实际的应用;com.YourCompany.etc或仅com.HelloWorld(项目名称:com.HelloWorld,类名称:HelloWorld)

要么

  • 创建Java项目时;在“创建Java项目”对话框中时,不要选择“完成”,而是选择“下一步”,然后取消选择“创建module-info.java”文件