Heim  >  Artikel  >  Java  >  So lösen Sie die Java-Fehlermeldung „Hauptklasse konnte nicht gefunden oder geladen werden“.

So lösen Sie die Java-Fehlermeldung „Hauptklasse konnte nicht gefunden oder geladen werden“.

王林
王林nach vorne
2023-04-24 16:37:087469Durchsuche

Vorwort

Im Allgemeinen verwenden wir Tools zum Bearbeiten und Debuggen von Code, wie Eclipse, Manven, Android Studio, Sublime, Vim, Notepad, Notepad usw.
Wenn wir Projekt- und Java-Klassendateien mit Eclipse Android Studio usw. erstellen, haben sie alle Paketnamen. Sie werden normal mit Tools kompiliert und ausgeführt, aber wenn wir zur Ausführung zur Befehlszeile wechseln:
javac xxx.java
java xxx
Es ist sehr wahrscheinlich, dass 找不到或无法加载主类

Wenn wir Java zum ersten Mal lernen, ist der Paketname (Paket) nicht in der Klassendatei festgelegt. Achten Sie in diesem Fall auf den Klassenpfad, und es gibt im Grunde kein Problem. Wenn wir jedoch Tools (Eclipse, Android Studio) zum Schreiben von Code verwenden, befindet sich der Speicherort der Codedatei in einem durch den Paketnamen getrennten Verzeichnis . Beachten Sie, dass es sich um ein relatives physisches Verzeichnis (com/eagle/app) handelt wird im Code angegeben. Ohne den Paketnamen kann es als virtuelles Verzeichnis (com.eagle.app) betrachtet werden. In diesem Artikel werden hauptsächlich die Fehlerursache und die richtige Lösung erläutert, wenn kein Problem mit dem Klassenpfad und der Systemumgebungsvariablen PATH vorliegt.
Die Codedatei ist wie folgt sehr einfach:

package com.eagle.app;

public class MainJava {
	public static void main(String[] args) {
        if (args != null) {
            for (String arg : args) {
                System.out.println("arg = " + arg);
            }
            System.out.println("arg = " + args);
        } else {
            System.out.println("args = " + null);
        }
}

javac xxx.java Für die Kompilierung ist ein relativer physischer Pfad erforderlich

So lösen Sie die Java-Fehlermeldung „Hauptklasse konnte nicht gefunden oder geladen werden“.

Wie oben gezeigt, am Beispiel von Android Studio
1 Unter dem Projektverzeichnis befindet sich ein src-Verzeichnis , aber es enthält die Dateien der gesamten App, nicht das „src“-Verzeichnis des Codes; im Fall von Eclipse ist das src-Verzeichnis das Codeverzeichnis.
2. Dies ist das „src“-Verzeichnis des Codes, und es gibt ein „Verzeichnis“, das unserem Paketnamen com/eagle/app entspricht

Um MainJava zu kompilieren, verwenden Sie:

//cd 到app目录
javac MainJava.java

oder

//cd  到eagle 目录
javac  app/MainJava.java

oder sogar

//cd 到main目录
javac  java/com/eagle/app/MainJava.java

Es ist alles in Ordnung. Natürlich kann es ein beliebiger Ort + relatives Verzeichnis sein.

Gehen wir zurück und erklären: Relativ zum aktuell ausgeführten Verzeichnis (z. B. App-Verzeichnis, Eagle-Verzeichnis, Hauptverzeichnis) ist der physische Pfad ein gültiger Computerpfad (xxx/xxx/xxx), daher ist der Name relativ zum physischer Weg.

Wenn etwas schief geht, muss der Weg falsch sein.
Bemerkungen: Das Codeverzeichnis wird beim Erstellen einer neuen Codedatei anhand des Startverzeichnisses des Paketnamens bestimmt.

Für die Ausführung von Java xxx ist ein virtueller Pfad erforderlich.

Das ist etwas interessant, lassen Sie mich betonen. Virtueller Pfad des Paketnamens: xxx.xxx.xxx , kein durch „/“ getrenntes Verzeichnis, daher wird es als virtueller Pfad bezeichnet.

So lösen Sie die Java-Fehlermeldung „Hauptklasse konnte nicht gefunden oder geladen werden“.

Im Bild oben ist 2 der Java-Code und 1 die durch die Tool-Kompilierung generierte Bytecode-Datei. Um nun MainJava.class auszuführen, lautet der richtige Befehl:
//cd in das Hauptverzeichnis in 1 und Nicht mehr com oder ein niedrigeres Verzeichnis Der Java-Befehl erkennt Folgendes: Der Parameter ist der Paketname.

Das Folgende sind alles Fehler


F:GSProjectjavatestbuildclassesjavamain>java com.eagle.app.MainJava.class
Fehler: Die Hauptklasse com.eagle.app.MainJava.class kann nicht gefunden oder nicht geladen werden


F :GSProjectjavatestbuildclassesjava> ;java maincom.eagle.app.MainJava
Fehler: Die Hauptklasse maincom.eagle.app.MainJava kann nicht gefunden oder geladen werden


Okay, jetzt verschieben wir das im Bild oben mit 1 eingekreiste Verzeichnis in das javatest-Verzeichnis. Wir führen java com.eagle.app.MainJava

So lösen Sie die Java-Fehlermeldung „Hauptklasse konnte nicht gefunden oder geladen werden“.

F:\GSProject>cd javatest\build\classes\java\main

F:\GSProject\javatest\build\classes\java\main>java com.eagle.app.MainJava
So lösen Sie die Java-Fehlermeldung „Hauptklasse konnte nicht gefunden oder geladen werden“. aus. Das Ergebnis ist, dass die Parameteradresse der Hauptfunktion normal ausgegeben wird. Es ist ersichtlich, dass wir unseren Bytecode nach Belieben ausführen, auf Linux oder Mac übertragen und problemlos tun können, was wir möchten. Die Verzeichnisstruktur in

1 ist Paket com.eagle.app; stellen Sie sicher, dass der Javac-Dateipfad **/xxx/xxx/xxx/Name.java** und der

Java-Dateipfad

xxx ist .xx.x.Name
, bring keinen Unterricht mit.

Das obige ist der detaillierte Inhalt vonSo lösen Sie die Java-Fehlermeldung „Hauptklasse konnte nicht gefunden oder geladen werden“.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen