Fout: kan hoofdklasse niet vinden of laden in intelliJ IDE

Ik ben een beginner in Java en probeer mijn code uit te voeren met IntelliJ die ik zojuist heb geïnstalleerd als mijn IDE met JDK 1.7. Het volgende stukje code blijft niet eens compileren en geeft me steeds de fout:

Error: Could not find or load main class libTest

Code

import java.lang.Integer;
import java.lang.String;
import java.lang.System;
import java.util.*;
class book {
    private String name = "trial";
    private int bookCode=1;
    private int issued=0;
     public void Issue(){
         if(issued==0) {
             issued=1;
             System.out.println("You have succesfully issued the book");
         }
         else {
             System.out.println("The book is already issued. Please contact the librarian for further details");
         }
    }
    public int checkCode() {
        return bookCode;
    }
    String readName() {
        return name;
    }
    public void setName(String newName){
        name=newName;
    }
    public void setBookCode(int newCode){
        bookCode=newCode;
    }
}
class library {
    private ArrayList books=new ArrayList();
    public void getList(){
        for(int bk:books){
            String bName=books(bk).readName();
            System.out.println((bk+1)+")  "+bName);
        }
    }
}
public class libTest{
    public static void main(String[] args){
        library newLib= new library();
        System.out.println("code working");
   }
}

Is er een wijziging die ik moet aanbrengen in de compiler-instellingen?? Of is het de code.


Antwoord 1, autoriteit 100%

Dit kan helpen:

1) Menu “Bouw” -> “Rebuild Project“.
Soms herschrijft Intellij de klassen niet omdat ze al bestaan, op deze manier vraag je Intellij om alles te herschrijven.

2) Menu “Uitvoeren” -> “Edit configuration” -> verwijder het profiel -> voeg het profiel weer toe (“Toepassing” als het een Java-toepassing is), kies uw hoofdklasse in het vervolgkeuzemenu “Hoofdklasse”.

3) Menu “Bouw” -> “Rebuild Project“.


Antwoord 2, autoriteit 81%

Als geen van de bovenstaande antwoorden voor u heeft gewerkt, sluit u gewoon uw IntelliJ IDE en verwijdert u het IntelliJ IDE-bestand en de map uit de hoofdmap van uw project:

rm -rf .idea *.iml 

Open vervolgens het project met IntelliJ. Het moet nu werken.


Antwoord 3, autoriteit 41%

Voor mij was de oplossing om de uitvoermap onder projectinstellingen te herstellen. Voordat ik alleen “target” gebruikte voor de uitvoer van de Project-compiler. In plaats daarvan heb ik het bijgewerkt om een volledig pad te hebben, b.v. D:\dev\sigplusjava2_68\target
voer hier de afbeeldingsbeschrijving in


Antwoord 4, autoriteit 21%

Ik had dit probleem en ik heb alles geprobeerd wat ik kon bedenken en op deze site.

Geen van mijn Java-klassen werd opgehaald nadat ik het uit een externe branch had gehaald. Alle klassen hadden rode J’s bij hun naam in de projecthiërarchie, geen blauwe C’s.

Uiteindelijk heb ik geprobeerd deze tutorial te volgen en een paar stappen geprobeerd om iets niet beschreven te krijgen en het probleem opgelost:
https://www.jetbrains.com/help/idea/creating -and-managing-modules.html

Dit is wat ik deed:

  1. Ga naar bestand | Projectstructuur, of druk op Ctrl+Shift+Alt+S
  2. Selecteer Modules onder de sectie Projectinstellingen.
  3. Klik op het tabblad Bronnen op Bronnen op de regel ‘Markeren als:’.
  4. Klik op de knop Toepassen.

Om de een of andere reden hadden al mijn lessen toen blauwe C’s.

Iemand met een beter begrip van hoe IntelliJ en/of IDE’s het fenomeen misschien kunnen verklaren, maar het enige wat ik weet is dat het nu alle klassen kan zien en, belangrijker nog, de hoofdklasse, en kan uitvoeren.


Antwoord 5, autoriteit 14%

Maak de cache ongeldig en herstart je IntelliJ, bij mij werkte het.

Bestandsmenu → Caches ongeldig maken / Opnieuw opstarten... optie


Antwoord 6, autoriteit 8%

Expliciet een out-map maken en vervolgens het uitvoerpad instellen op C:\Users\USERNAME\IdeaProjects\PROJECTNAME\out

LIKE DIT

leek voor mij te werken toen ik net outwas, en verwachtte dat IntelliJ de map niet zou maken.


Probeer IntelliJ ook een nieuwe uitvoeringsconfiguratie te laten maken:

Vind de vorige door te klikken op

![Configuraties bewerken

verwijder het dan

voer hier de afbeeldingsbeschrijving in

en druk op OK.

Nu, (BELANGRIJKE STAP) open de klasse die uw hoofdmethode bevat.Dit gaat waarschijnlijk het gemakkelijkst door op de klassenaam te klikken in het projectvenster aan de linkerkant.

Geef een Alt+ Shift+ F10en je zou een

moeten krijgen

DIT

Druk nu op Enter!!

Tadah??
(Is het gelukt?)


Antwoord 7, autoriteit 3%

Ik weet dat dit een tijdje geleden is gevraagd, maar ik struikelde over dit probleem en dacht dat mijn bevindingen anderen zouden kunnen helpen. Zoals opgemerkt, is de foutmelding in feite een resultaat van de out-map. Dat komt omdat, wanneer je het programma probeert uit te voeren, het eerst de code compileert, en het gecompileerde resultaat naar de uit-locatie plaatst, en dan probeert het de gecompileerde code vanaf de uit-locatie te laden. Als de gecompileerde code zich niet op de verwachte locatie bevindt, krijgt u de foutmelding.

Het punt dat ik in het bijzonder wil delen, is dat de code soms niet wordt gecompileerd (gebouwd), ook al specificeert je runconfiguratie “Build” in het gedeelte “Vóór lancering” van het configuratiescherm.

Wanneer kan dit gebeuren?
Een situatie die dit kan veroorzaken is als u modules gebruikt en u handmatig de module uit-map verwijdert. Als ik bijvoorbeeld een module heb met de naam “foo”, zou er een map met de naam foo moeten zijn onder out/productie. Als u het handmatig verwijdert, weet het buildsysteem mogelijk niet dat het opnieuw moet worden opgebouwd.

Erger nog, als je Build | . selecteert Bouw module ‘foo’, het kan zijn dat het de module nog steeds niet herbouwt. Als dat het geval is, moet u een bestand in de module selecteren, bijvoorbeeld ‘bar.java’ en vervolgens Build | Compileer ‘bar.java’ opnieuw. Nu zou de out directory out/production/foo hersteld moeten worden.

Omdat IntelliJ doorgaans op de hoogte is van veranderingen die gaande zijn, verbaasde dit me en kostte het me wat tijd om erachter te komen, dus ik dacht ik deel het.


Antwoord 8, autoriteit 3%

Controleer je klasmodule: ik ben dit probleem tegengekomen met intellij:
Ik heb een maven multi-module project, het probleem is dat ik een klasse draai die niet bestaat in de module in de configuratie, dus mijn probleem is opgelost door de juiste module in te stellen (“configuratie bewerken” -> “gebruik klasse van module” )

kan dit je helpen


Antwoord 9, autoriteit 3%

Ik moest de map “src” markeren als “Bronnen”. Nadat ik IntelliJ opnieuw had opgestart en het project opnieuw had opgebouwd, kon ik het project zonder verdere problemen uitvoeren (zie screenshot) .
Bewerken: u kunt het tabblad “Projectstructuur” openen via Bestand->Projectstructuur of door op Ctrl+Shift+Alt+S te drukken.


Antwoord 10, autoriteit 3%

Bestand > Projectstructuur > Modules > Markeer de map “src” als bronnen.
Dit zou het probleem moeten oplossen. Controleer ook of de nieuwste taal is geselecteerd, zodat u geen code hoeft te wijzigen of configuratiewijzigingen hoeft aan te brengen.
voer hier de afbeeldingsbeschrijving in


Antwoord 11, autoriteit 3%

Open het tabblad Modules (druk op Ctrl+Shift+Alt+S). Ik had twee modules onder één project. Ik heb het probleem opgelost na het verwijderen van de tweede redundante module (zie screenshot).voer hier de afbeeldingsbeschrijving in


Antwoord 12, autoriteit 2%

Ik heb dergelijke problemen ondervonden wanneer de klasse zich in de standaardmap bevindt, d.w.z. wanneer de klasse geen pakket declareert.

Dus ik denk dat het gebruik van een pakketverklaring (bijv. package org.me.mypackage;) bovenop de klasse dit zou moeten oplossen.


Antwoord 13

In mijn geval leek het probleem te maken te hebben met het upgraden van IntelliJ. Toen ik dit deed, heb ik de bestanden van de oude IntelliJ overschreven met de bestanden van de nieuwe IntelliJ (community van 2017 tot community van 2018). Daarna waren al mijn projecten kapot. Ik heb alles in dit draadje geprobeerd en geen van hen werkte. Ik heb geprobeerd gradle te upgraden naar de nieuwste versie (4 naar 4.8) en dat werkte niet. Het enige dat voor mij werkte, was de hele IntelliJ-map verwijderen en opnieuw installeren. Daarna werkten al mijn projecten.


Antwoord 14

Ik heb alle hier voorgestelde hacks geprobeerd – zonder resultaat. Aan het einde heb ik gewoon een nieuwe Maven-toepassing gemaakt en handmatig erin gekopieerd – één voor één – de pom.xml en de java-bestanden en bronnen. Het werkt nu allemaal. Ik ben nieuw bij IntelliJ en totaal niet onder de indruk, maar hoe gemakkelijk is het om het in een onstabiele staat te krijgen.


Antwoord 15

Probeer na het maken van uw project in intelliJ de volgende opdracht uit te voeren:

mvn package

Antwoord 16

Voor mij – ik heb enkele van de bovenstaande opties geprobeerd, werkte niet. Toen heb ik mijn Application-klasse hernoemd en dat dwong intelliJ waarschijnlijk een nieuwe pot te bouwen en de foutmelding begon te veranderen. Toen hernoemde ik het terug en het werkte.


Antwoord 17

Markeer de map als een bronmap. Geopend via Ctrl+Shift+Alt+S

voer hier de afbeeldingsbeschrijving in


Antwoord 18

voer hier de afbeeldingsbeschrijving in

modules.xml met verkeerde inhoud, ik weet niet wat er aan de hand is met mijn IDEE.


Antwoord 19

Ik heb een aantal .JAVA-bestanden van elders geërfd en kon er niet achter komen hoe ik ze in een IDE kon laten werken. Uiteindelijk moest ik naar de opdrachtregel gaan waar het Main.JAVA-bestand stond en javac Main.javauitvoeren. Dit creëerde een aantal .CLASS-bestanden. De IDE’s konden toen uitzoeken wat ze moesten doen.


Antwoord 20

Ik kreeg deze fout bij het gebruik van Scala/SBT. IntelliJ kon de hoofdklasse niet vinden, hoewel alles correct was ingesteld.
Mijn oplossing: verwijder de map <user>/.sbt/<version>/plugins/targeten start IntelliJ opnieuw.


Antwoord 21

U zou waarschijnlijk een verkeerd pakket hebben gespecificeerd en de pakkethiërarchie zou niet juist zijn. Kijk hieronder

voer hier de afbeeldingsbeschrijving in

De ide zou in dat geval het verkeerde pad markeren.


Antwoord 22

Ik gebruik IntelliJ met Spring en mijn hoofdklasse is verpakt in een JAR.
Ik moest de ‘Afhankelijkheden opnemen met ‘Geleverd’ bereik’ markeren in het dialoogvenster Uitvoeren/foutopsporing


Antwoord 23

We zijn bij Bestand/Projectstructuur..
Het antwoord kan zijn:

Map die wordt aangeduid als “content root” heeft een onderliggende map nodig waar de code zich bevindt.
Vind bovendien de knop die code markeert als uitgesloten en niet.
Niet te verwarren met aankruisvak dat uitgesloten aangeeft zonder te vertellen in welke fase en wat**
Is het compiler uitsluiten of runtime uitsluiten? Je bent gedoemd om te testen en te loten.
Dus geen vinkje maar iconen en kleuren.

Als idee moeten we achterhalen hoe het oorspronkelijk zou werken. Ze kregen het nooit werkend in de eerste plaats en begonnen dingen toe te voegen in een voortijdige codaculatie-stijl.
Het is al zoveel jaren geleden en je kunt geen verbetering verwachten.
Maar als remedie kunnen we een manier vinden om het elke keer weer goed te krijgen.


Antwoord 24

Een ander ding dat u hier kunt controleren, is het daadwerkelijke commando dat wordt doorgegeven aan de JVM en ervoor zorgen dat het er goed uitziet. Scrol naar de bovenkant van je Run-console, dit zou de eerste regel moeten zijn.

Spaties in uw veld Configuratie-VM-opties uitvoerenmaken de app-opstartopdracht ongeldig en kunnen resulteren in dit foutbericht

-DsomeArgument="arg with space must be quoted"

Antwoord 25

Ik kwam dit probleem tegen toen mijn Java-klasse onder src/main/kotlinzat. Nadat ik het naar src/main/javahad verplaatst, was het probleem verdwenen.


Antwoord 26

Ik heb bijna alles geprobeerd wat in de antwoorden hier wordt gesuggereerd, maar niets werkte voor mij.

Na een uur proberen mijn applicatie uit te voeren, merkte ik dat het pad van mijn project niet-ASCII-tekens (Arabische tekens) bevatte. Nadat ik mijn project had verplaatst naar een pad zonder niet-ASCII-tekens, werd het prima uitgevoerd.


Antwoord 27

Ik werk met Kotlin, maar ik vermoed dat het probleem hetzelfde is. Ik zou een project starten, een enkel bestand maken en er main aan toevoegen en de IDE kon de main niet vinden.

Ik heb de dingen in deze lijst geprobeerd en geen enkele werkte. Ik heb eindelijk mijn frustratie genoemd op een van de IntelliJ-pagina’s en er werd contact met me opgenomen. Natuurlijk werkte het prima voor IntelliJ. Na een paar dagen heen en weer merkte ik dat de highlight-functie niet werkte en vermeldde dat. Er bleek iets mis te zijn met de IDE-instellingen. Ik weet nog steeds niet precies wat er mis was, maar de oplossing in mijn geval was om de IDE-instellingen te resetten. Bestand->Beheer IDE-instellingen->Standaardinstellingen herstellen.

Hierna werd het startpictogram van de groene driehoek zichtbaar links van mijn hoofdfunctie en bleef alles normaal werken voor volgende projecten.
Met dank aan Konstantin bij JetBrain’s steun voor zijn geduld.


Antwoord 28

Het ongeldig maken van de cache werkte niet.

Ik heb het Java-bestand van de hoofdklasse met een dummy-wijziging bewerkt en uitgevoerd. Het werkte.


Antwoord 29

Voortzetting van de oplossing van Brad Turek… Een van de standaard IntelliJ Java-projectsjablonen verwacht een bestand met de naam Main dat het ingangspunt van de klasse Mainen main()definieert. Als de methode zich in een ander bestand (en klasse) bevindt, wijzigt u de configuratie Uitvoeren:

Configuratievenster uitvoeren

  1. Met het project geopend in IntelliJ, gebruikt u de Run:Edit Configurations…
    menu om het buildconfiguratievenster te openen.
  2. Als het item voor Hoofdklasseniet de naam van uw bestand bevat dat de klasse bevat die de
    main()invoermethode, voer de juiste bestandsnaam in. (De configuratie in de afbeelding is verkeerd, daarom is deze rood in het configuratiescherm.)
  3. Mijn main()invoermethode zit in de klasse (en bestand) ScrabbleTest. Dus het veranderen van Hoofdklasse:naar ScrabbleTestlost de runtime-fout op.

Zoals anderen al hebben opgemerkt, moet u Opnieuw bouwenmet de nieuwe configuratie. Ik gebruik een pakket, maar dat lijkt geen verschil te maken IME. Ik hoop dat dit helpt.


Antwoord 30

In mijn geval moet in de module build.gradle de mainClassName-toewijzing de volledig gekwalificeerde klassenaam bevatten, dwz. zoals gespecificeerd als de pakketnaam in het broncodebestand van de hoofdklasse.

Other episodes