java – must declare a named package eclipse because this compilation unit is associated to the named module
java – must declare a named package eclipse because this compilation unit is associated to the named module
Just delete module-info.java at your Project Explorer tab.
The delete module-info.java at your Project Explorer tab answer is the easiest and most straightforward answer, but
for those who would want a little more understanding or control of whats happening, the following alternate methods may be desirable;
- make an ever so slightly more realistic application; com.YourCompany.etc
or just com.HelloWorld (Project name: com.HelloWorld and class name: HelloWorld)
or
- when creating the java project; when in the Create Java Project dialog, dont choose Finish but Next, and deselect Create module-info.java file
java – must declare a named package eclipse because this compilation unit is associated to the named module
Reason of the error: Package name left blank while creating a class. This make use of default package. Thus causes this error.
Quick fix:
- Create a package eg.
helloWorld
inside thesrc
folder. - Move
helloWorld.java
file in that package. Just drag and drop on
the package. Error should disappear.
Explanation:
- My Eclipse version: 2020-09 (4.17.0)
- My Java version: Java 15, 2020-09-15
Latest version of Eclipse required java11 or above. The module
feature is introduced in java9 and onward. It was proposed in 2005 for Java7 but later suspended. Java is object oriented based. And module is the moduler approach which can be seen in language like C. It was harder to implement it, due to which it took long time for the release. Source: Understanding Java 9 Modules
When you create a new project in Eclipse then by default module feature is selected. And in Eclipse-2020-09-R, a pop-up appears which ask for creation of module-info.java
file. If you select dont create
then module-info.java
will not create and your project will free from this issue.
Best practice is while crating project, after giving project name. Click on next
button instead of finish
. On next page at the bottom it ask for creation of module-info.java
file. Select or deselect as per need.
If selected: (by default) click on finish
button and give name for module. Now while creating a class dont forget to give package name. Whenever you create a class just give package name. Any name, just dont left it blank.
If deselect: No issue