skal erklære en navngivet pakkeformørkelse, fordi denne kompileringsenhed er knyttet til det navngivne modul
Bare slet module-info.java på fanen Project Explorer.
Svaret "slet module-info.java på din Project Explorer-fane" er det nemmeste og mest ligetil svar, men
for dem, der gerne vil have en lidt mere forståelse eller kontrol over, hvad der sker, kan følgende alternative metoder være ønskelige;
- lav en aldrig så lidt mere realistisk applikation; com.YourCompany.etcor bare com.HelloWorld (projektnavn:com.HelloWorld og klassenavn:HelloWorld)
eller
- når du opretter java-projektet; Når du er i dialogboksen Opret Java-projekt, skal du ikke vælge Udfør, men Næste, og fravælge Opret module-info.java-fil
Årsag til fejlen: Pakkenavn efterladt tomt under oprettelse af en klasse. Dette gør brug af standardpakke. Derfor forårsager denne fejl.
Hurtig løsning:
- Opret en pakke, f.eks.
helloWorld
inde isrc
mappe. - Flyt
helloWorld.java
fil i den pakke. Bare træk og slip på pakken. Fejlen skulle forsvinde.
Forklaring:
- My Eclipse-version:2020-09 (4.17.0)
- Min Java-version:Java 15, 2020-09-15
Seneste version af Eclipse påkrævet java11 eller over. module
funktion er introduceret i java9 og frem. Det blev foreslået i 2005 til Java7, men blev senere suspenderet. Java er objektorienteret baseret. Og modul er modulær tilgangen, som kan ses i sprog som C. Det var sværere at implementere det, hvorfor det tog lang tid for udgivelsen. Kilde: Forstå Java 9-moduler
W Når du opretter et nyt projekt i Eclipse, er modulfunktionen som standard valgt. Og i Eclipse-2020-09-R vises en pop-up, som beder om oprettelse af module-info.java
fil. Hvis du vælger don't create
derefter module-info.java
vil ikke oprette, og dit projekt vil frigøres fra dette problem.
Bedste praksis er, mens du samler projekter, efter at have givet projektets navn. Klik på next
knap i stedet for finish
. På næste side nederst beder den om oprettelse af module-info.java
fil. Vælg eller fravælg efter behov.
Hvis valgt: (som standard) klik på finish
knap og giv navn til modulet. Mens du opretter en klasse, glem ikke at give pakkenavn . Når du opretter en klasse, skal du blot give pakkenavn. Ethvert navn, lad det bare ikke stå tomt.
Hvis fravælg: Intet problem