wake-up-neo.net

Fehler: Hauptklasse in intelliJ nicht gefunden oder geladen IDE

Ich bin ein Anfänger in Java und versuche, meinen Code mit IntelliJ auszuführen, den ich gerade als IDE mit JDK 1.7 installiert habe. Der folgende Code wird nicht einmal kompiliert und gibt mir immer den Fehler:

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");
   }
}

Gibt es eine Änderung, die ich in den Compilereinstellungen vornehmen muss? Oder ist es der Code?.

70

Das könnte helfen:

1) Menü "Erstellen" -> "Rebuild Project" . Manchmal schreibt Intellij die Klassen nicht neu, da sie bereits vorhanden sind. Auf diese Weise bitten Sie Intellij, alles neu zu schreiben.

2) Menü "Ausführen" -> "Edit configuration" -> Profil löschen -> Profil wieder hinzufügen ("Anwendung", wenn es sich um eine Java-Anwendung handelt), wählen Sie Ihre Hauptklasse aus dem Dropdown-Menü "Hauptklasse". 

3) Menü "Erstellen" -> "Rebuild Project". 

83
Ehsan

Für mich bestand die Lösung darin, das Ausgabeverzeichnis in den Projekteinstellungen festzulegen. Vorher habe ich nur "target" für die Ausgabe des Project-Compilers verwendet. Stattdessen habe ich es aktualisiert, um einen vollständigen Pfad zu haben, z. D:\dev\sigplusjava2_68\target  enter image description here

48
Uncle Iroh

Wenn keine der obigen Antworten für Sie funktioniert hat, schließen Sie einfach Ihre intelliJ IDE und entfernen Sie die intelliJ IDE Datei und den Ordner aus dem Stammverzeichnis des Projekts: 

rm -rf .idea *.iml 

Dann öffnen Sie das Projekt mit intelliJ. Es muss jetzt klappen.

36
youhans

Einen out Ordner explizit erstellen und dann den Ausgabepfad auf C:\Users\USERNAME\IdeaProjects\PROJECTNAME\out setzen

LIKE THIS

schien für mich zu funktionieren, wenn nur out und erwartet, dass IntelliJ den Ordner nicht machen würde.


Versuchen Sie auch, mit IntelliJ eine neue Ausführungskonfiguration zu erstellen:

Suchen Sie die vorherige, indem Sie auf klicken

![Edit Configurations

dann entferne es

enter image description here

und drück auf OK.

Öffnen Sie jetzt (WICHTIGER SCHRITT) die Klasse, die Ihre Hauptmethode enthält. Dies ist wahrscheinlich am einfachsten, indem Sie auf den Klassennamen im linken Projekt klicken Feld.

Gib 'er ein Alt + Shift + F10 und du solltest einen bekommen

THIS

Jetzt schlag Enter!!

Tadah ?? (Hat es funktioniert?)

10
Brad Turek

Ich hatte dieses Problem und habe alles unter der Sonne ausprobiert, woran ich auf dieser Seite denken konnte. 

Keine meiner Java-Klassen wurde abgeholt, nachdem ich aus einem entfernten Zweig gezogen wurde. Alle Klassen hatten rote Js in der Projekthierarchie, nicht blaue Cs.

Am Ende habe ich versucht, diesem Tutorial zu folgen und ein paar Schritte in etwas zu versuchen, was nicht beschrieben wurde, und das Problem behoben: https://www.jetbrains.com/help/idea/creating-and-managing-modules .html

Folgendes habe ich getan:

  1. Gehe zu Datei | Projektstruktur oder drücken Sie Strg + Umschalttaste + Alt + S
  2. Wählen Sie im Abschnitt Projekteinstellungen die Option Module aus. 
  3. Klicken Sie auf der Registerkarte Quellen in der Zeile 'Markieren als:' auf Quellen. 
  4. Klicken Sie auf die Schaltfläche Übernehmen. 

Aus irgendeinem Grund hatten alle meine Klassen dann blaue C's. 

Jemand mit einem besseren Verständnis darüber, wie IntelliJ und/oder IDE das Phänomen erklären können, aber alles, was ich weiß, ist, dass es jetzt alle Klassen und vor allem die Hauptklasse sehen und ausführen kann. 

9
Sarah Cohen

Ich weiß, dass dies vor einiger Zeit gefragt wurde, aber ich stolperte gerade über dieses Problem und dachte, meine Erkenntnisse könnten anderen helfen. Wie bereits erwähnt, ist die Fehlermeldung im Wesentlichen ein Ergebnis des Out-Ordners. Wenn Sie versuchen, das Programm auszuführen, kompiliert es den Code zuerst und platziert das kompilierte Ergebnis an den Out-Speicherort. Anschließend wird versucht, den kompilierten Code vom Out-Speicherort zu laden. Wenn sich der kompilierte Code nicht am erwarteten Speicherort befindet, wird der Fehler angezeigt. 

Der Punkt, den ich besonders gerne teilen möchte, ist, dass der Code manchmal nicht kompiliert (erstellt) wird, obwohl Ihre Laufkonfiguration im Abschnitt "Vor dem Start" des Konfigurationsfensters "Build" angibt. 

Wann kann das passieren? Eine Situation, die dazu führen kann, ist, dass Sie Module verwenden und das Modul-Out-Verzeichnis manuell löschen. Wenn ich beispielsweise ein Modul mit dem Namen "foo" habe, sollte sich unter out/production ein Verzeichnis mit dem Namen foo befinden. Wenn Sie es manuell löschen, weiß das Buildsystem möglicherweise nicht, dass es neu erstellt werden muss. 

Noch schlimmer, wenn Sie Build | auswählen Modul 'foo' erstellen, das Modul kann immer noch nicht neu erstellt werden. Wenn dies der Fall ist, sollten Sie im Modul eine Datei auswählen, z. B. "bar.Java", und dann Build | auswählen Kompilieren Sie 'bar.Java'. Nun sollte das Ausgangsverzeichnis out/production/foo wiederhergestellt werden. 

Da IntelliJ in der Regel über Änderungen informiert ist, hat mich das sehr überrascht und ich habe ein wenig Zeit gebraucht, um herauszufinden, was ich dachte. 

4
msoltys

Überprüfe dein Klassenmodul : Dieses Problem ist mit intellij aufgetreten: Ich habe ein Maven-Multimodul-Projekt. Das Problem ist, dass ich eine Klasse führe, die das Modul nicht in der Konfiguration enthält. Mein Problem ist also Festgelegt durch Setzen des richtigen Moduls ("Konfiguration bearbeiten" -> "Modulklasse verwenden") 

kann dir das helfen

4

Ich musste den Ordner "src" als "Quellen" markieren. Nach dem Neustart von IntelliJ und dem erneuten Erstellen des Projekts konnte ich das Projekt ohne weitere Probleme ausführen (siehe screenshot ) . Bearbeiten: Sie können auf die Registerkarte "Projektstruktur" über Datei-> Projektstruktur oder durch Drücken von Strg + Shift zugreifen + Alt + S.

3
NEMESIS

Ich bin mit solchen Problemen konfrontiert, wenn sich die Klasse im Standardordner befindet, d. H. Wenn die Klasse kein Paket deklariert.

Ich schätze also, wenn man eine Paketanweisung (zB package org.me.mypackage;) über der Klasse verwendet, sollte dies behoben werden.

2
Hakan Serce

Cache ungültig machen und Ihre Intellijne neu starten, es hat bei mir funktioniert . Go to File as show in the attached picture

2
SKK

Markieren Sie das Verzeichnis als Quellverzeichnis. Wird mit Strg + Umschalt + Alt + S geöffnet

 enter image description here 

1
Crt

Ich habe eine Reihe von .Java-Dateien von einer anderen Stelle geerbt und konnte nicht herausfinden, wie ich sie in einer IDE zum Laufen bringen kann. Letztendlich musste ich zu der Befehlszeile gehen, in der sich die Main.Java-Datei befand, und javac Main.Java ausführen. Dadurch wurden eine Reihe von CLASS-Dateien erstellt. Die IDEs konnten dann herausfinden, was zu tun ist.

1
codeMonkey

Öffnen Sie die Registerkarte "Module" (drücken Sie Strg + Umschalt + Alt + S). Ich hatte zwei Module unter einem Projekt. Ich habe das Problem gelöst, nachdem das zweite redundante Modul entfernt wurde (siehe Screenshot) .  enter image description here

1
Taras Melnyk

In meinem Fall schien das Problem mit der Aktualisierung von IntelliJ zu zusammenhängen. Dabei habe ich die Dateien der alten IntelliJ mit den Dateien der neuen IntelliJ (2017 Community bis 2018 Community) überschrieben. Danach waren alle meine Projekte kaputt. Ich habe alles in diesem Thread ausprobiert und keiner von ihnen hat funktioniert. Ich habe versucht, Gradle auf die neueste Version (4 bis 4,8) zu aktualisieren, und das hat nicht funktioniert. Das einzige, was für mich funktionierte, war das Löschen des gesamten IntelliJ-Ordners und die Neuinstallation. Alle meine Projekte funktionierten danach.

1
blindcant

Für mich - ich habe einige der oben genannten Optionen ausprobiert, aber nicht funktioniert. Dann habe ich gerade meine Application-Klasse umbenannt und das hat wahrscheinlich IntelliJ gezwungen, ein neues Glas zu erstellen, und die Fehlermeldung begann sich zu ändern. Dann habe ich es umbenannt und es hat funktioniert.

1
JavaTec

In meinem Fall muss im build.gradle des Moduls die mainClassName-Zuweisung den vollständig qualifizierten Klassennamen angeben, dh wie in der Quellcodedatei der Hauptklasse als Paketname angegeben.

0
Matthew

Für mich war das Problem ein Sonderzeichen im Dateipfad.

IntelliJ erlaubte mir, das Projekt zu öffnen. Beim Erstellen/Ausführen des Projekts konnte die Klasse jedoch nicht mehr gefunden werden, da der Dateipfad so geändert wurde, dass das Sonderzeichen entfernt wurde, und daher im falschen Verzeichnis gesucht wurde.

Um das Problem zu lösen, habe ich gerade das Sonderzeichen aus dem Ordnernamen entfernt, in dem mein Projekt gespeichert war, und das Projekt in IntelliJ erneut geöffnet.

0
Mitchell Cash

Ich habe alle hier vorgeschlagenen Hacks ausprobiert - ohne Erfolg. Am Ende habe ich einfach eine neue Maven-Anwendung erstellt und manuell nacheinander in die Datei pom.xml und die Java-Dateien und -Ressourcen kopiert. Alles funktioniert jetzt. Ich bin neu bei IntelliJ und total unbeeindruckt, aber wie einfach es ist, es in einen instabilen Zustand zu bringen.

0

Ich habe diesen Fehler bei der Verwendung von Scala/SBT. IntelliJ konnte die Hauptklasse nicht finden, obwohl alles korrekt eingerichtet war. Meine Lösung: Löschen Sie den Ordner <user>/.sbt/<version>/plugins/target und starten Sie IntelliJ neu.

0
Beni Murza

Erstellen Sie einfach das Projekt neu (STRG + F9) und überprüfen Sie (Konfigurationen bearbeiten), ob Sie eine ordnungsgemäß eingestellte Hauptklasse und ein Modul (falls vorhanden) haben.

0
AlexPes

 enter image description here 

modules.xml mit falschem Inhalt, ich weiß nicht, was mit meiner IDEA los ist.

0
ibamboo

Auf die Lösung von Brad Turek eingehen ... Eine der Standardvorlagen für IntelliJ Java-Projekte erwartet eine Datei namens Main, die den Methodeneinstiegspunkt class main und main () definiert. Wenn die Methode in einer anderen Datei (und Klasse) enthalten ist, ändern Sie die Konfiguration von Run:

Konfigurationsfenster ausführen

  1. Wenn das Projekt in IntelliJ geöffnet ist, verwenden Sie das Menü Run: Edit Configurations ... , Um das Build-Konfigurationsfenster zu öffnen. 
  2. Wenn der Eintrag für Main-Klasse nicht den Namen Ihrer Datei auflistet, die die Klasse enthält, die die Eingabemethode main () verfügbar macht, geben Sie den korrekten Dateinamen ein. (Die Konfiguration im Bild ist falsch, weshalb sie im Konfigurationsbereich rot ist.) 
  3. Meine main () -Eingabemethode befindet sich in der Klasse (und Datei) ScrabbleTest. Ändern der Main-Klasse: in ScrabbleTest behebt den Laufzeitfehler.

Wie andere angemerkt haben, müssen Sie ReBuild mit der neuen Konfiguration verwenden. Ich verwende ein Paket, aber es scheint keinen Unterschied zu machen, IME. Hoffe das hilft.

0
JHake

Folge diesen Schritten

  1. Geh rennen
  2. Gehe zum Bearbeiten von Konfigurationen
  3. Klicken Sie auf das grüne + Zeichen in der oberen linken Ecke
  4. Wählen Sie den Typ aus, den Sie bearbeiten, beispielsweise "Anwendungen".
  5. Geben Sie nun den Namen der Klasse ein, die Sie ausführen möchten, anstatt unbenannt zu sein 
  6. Machen Sie dasselbe, wo es Main class geschrieben ist, direkt darunter.

Yippee .... Ihr Code wird ausgeführt :)

0
Nikhil Goyal