pergunta
Jar empacotado Springboot, use java -cp para relatar um erro: a classe principal não pode ser encontrada ou não pode ser carregada
Solução
Existem algumas diferenças entre os arquivos empacotados pelo springboot e o método geral de inicialização do java.
Ele precisa ser modificado para usar o seguinte comando e, em seguida, adicionar a classe: org.springframework.boot.loader.PropertiesLauncher, como segue:
java -cp .:test-0.0.1-SNAPSHOT.jar -Dloader.main=com .aa.commonorg.springframework.boot.loader.PropertiesLauncher
Comente
org.springframework.boot.loader.PropertiesLauncher
É uma classe inicial especial no Spring Boot. Sua principal função é carregar e analisar o arquivo de propriedades de um aplicativo Spring Boot e aplicar essas propriedades ao contexto do aplicativo ao iniciar o aplicativo.
Especificamente, PropertiesLauncher
ele é responsável pelas seguintes tarefas:
-
Carregando o arquivo de propriedades do aplicativo: os aplicativos Spring Boot normalmente usam arquivos
application.properties
ouapplication.yml
para configurar as propriedades do aplicativo.PropertiesLauncher
Responsável por carregar esses arquivos de propriedades para que a aplicação possa utilizar essas configurações. -
Analise as propriedades no arquivo de propriedades:
PropertiesLauncher
analise os pares chave-valor no arquivo de propriedades e converta-os em propriedades para o aplicativo Spring Boot. Essas propriedades podem ser usadas no contexto do aplicativo para configurar vários componentes e comportamentos. -
Fornece suporte para propriedades externas: além do arquivo de propriedades padrão,
PropertiesLauncher
também suporta o carregamento de propriedades externas. Usando argumentos de linha de comando ou variáveis de ambiente, você pode especificar arquivos de propriedades adicionais ou valores de propriedades que são mesclados com as propriedades padrão do aplicativo. -
Tratamento de espaços reservados para valores de propriedades: Em um arquivo de propriedades, você pode usar
${...}
espaços reservados para referenciar os valores de outras propriedades.PropertiesLauncher
Responsável por analisar esses espaços reservados e substituí-los pelos valores de atributos corretos.
Resumindo, org.springframework.boot.loader.PropertiesLauncher
é uma classe inicial do Spring Boot usada para carregar e analisar o arquivo de propriedades do aplicativo e aplicar essas propriedades ao contexto do aplicativo. Ele desempenha um papel importante ao iniciar um aplicativo Spring Boot, garantindo que o aplicativo use a configuração e as propriedades corretas.