Frage
Springboot-gepacktes JAR, verwenden Sie Java -cp, um einen Fehler zu melden: Die Hauptklasse wurde nicht gefunden oder kann nicht geladen werden
Lösung
Es gibt einige Unterschiede zwischen den von Springboot gepackten Dateien und der allgemeinen Java-Startmethode.
Es muss geändert werden, um den folgenden Befehl zu verwenden, und dann die Klasse hinzufügen: org.springframework.boot.loader.PropertiesLauncher wie folgt:
java -cp .:test-0.0.1-SNAPSHOT.jar -Dloader.main=com .aa.common org.springframework .boot.loader.PropertiesLauncher
Kommentar
org.springframework.boot.loader.PropertiesLauncher
Es handelt sich um eine spezielle Starterklasse in Spring Boot. Seine Hauptaufgabe besteht darin, die Eigenschaftendatei einer Spring Boot-Anwendung zu laden und zu analysieren und diese Eigenschaften beim Starten der Anwendung auf den Anwendungskontext anzuwenden.
Im Einzelnen PropertiesLauncher
ist er für folgende Aufgaben verantwortlich:
-
Laden der Eigenschaftendatei der Anwendung: Spring Boot-Anwendungen verwenden normalerweise
application.properties
oder-application.yml
Dateien, um die Eigenschaften der Anwendung zu konfigurieren.PropertiesLauncher
Verantwortlich für das Laden dieser Eigenschaftendateien, damit die Anwendung diese Konfigurationen verwenden kann. -
Analysieren Sie die Eigenschaften in der Eigenschaftendatei:
PropertiesLauncher
Analysieren Sie die Schlüssel-Wert-Paare in der Eigenschaftendatei und konvertieren Sie sie in Eigenschaften für die Spring Boot-Anwendung. Diese Eigenschaften können im Kontext der Anwendung verwendet werden, um verschiedene Komponenten und Verhaltensweisen zu konfigurieren. -
Unterstützung für externe Eigenschaften bereitstellen: Zusätzlich zur Standardeigenschaftendatei
PropertiesLauncher
wird auch das Laden externer Eigenschaften unterstützt. Mithilfe von Befehlszeilenargumenten oder Umgebungsvariablen können Sie zusätzliche Eigenschaftendateien oder Eigenschaftswerte angeben, die mit den Standardeigenschaften der Anwendung zusammengeführt werden. -
Umgang mit Platzhaltern für Eigenschaftswerte: In einer Eigenschaftendatei können Sie
${...}
Platzhalter verwenden, um auf die Werte anderer Eigenschaften zu verweisen.PropertiesLauncher
Verantwortlich für das Parsen dieser Platzhalter und deren Ersetzung durch die richtigen Attributwerte.
Kurz gesagt org.springframework.boot.loader.PropertiesLauncher
handelt es sich um eine Starterklasse von Spring Boot, die zum Laden und Analysieren der Eigenschaftendatei der Anwendung und zum Anwenden dieser Eigenschaften auf den Anwendungskontext verwendet wird. Es spielt beim Starten einer Spring Boot-Anwendung eine wichtige Rolle und stellt sicher, dass die Anwendung die richtige Konfiguration und die richtigen Eigenschaften verwendet.