Java 指定主类Spring引导命令行

Java 指定主类Spring引导命令行,java,spring,spring-boot,Java,Spring,Spring Boot,我使用maven插件设置主类,如下所示: <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.myapp.main.MainClass</mainClass> </confi

我使用maven插件设置主类,如下所示:

<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
    <mainClass>com.myapp.main.MainClass</mainClass>
</configuration>
</plugin>

Thx

有一个。您需要将其作为主类()来构建jar。

以下命令将完成此任务:

java -cp my-app.jar -Dloader.main=myApplicationClass org.springframework.boot.loader.PropertiesLauncher

从Windows PowerShell执行时,我需要此格式(带引号):

java-cp.\myjarfile.jar-D“loader.main=com.app.etc.FullyQualifiedMainClass”org.springframework.boot.loader.PropertiesLauncher


为了澄清被接受的答案:如果您同意使用更静态的解决方案,您可以直接修改jar的META-INF/MANIFEST.MF文件中的loader.main属性。

+1。我也有同样的问题(我决定写我自己的“master”主类,它查看第一个参数,然后发送到其他地方,这样你就可以得到一个不错的命令行,而不需要完整的类名和奇怪的-D东西,但是如果你想知道什么时候运行任何你事先没有想到的类,那就太好了)。可能是Vinay Lodha的重复,不,它不起作用:
线程“main”java.lang.NoClassDefFoundError:org/springframework/beans/BeansException
中的异常,您想将布局设置为“ZIP”以获取PropertyLancher。我知道这是一篇旧文章,但仍然有一个问题。那么你需要用不同的电源建造两个不同的罐子吗?或者可以在同一个jar中指定为命令行参数吗?您看到了吗:?对于那些不想让maven配置混乱的人来说,这是最好的解决方案。效果很好,谢谢-请注意,myApplicationClass将是您的包限定类,您只需在最后不接触spring包即可:)。最好的解决方案!另外,关于PropertiesLauncher的一点解释也不错
java -cp my-app.jar -Dloader.main=myApplicationClass org.springframework.boot.loader.PropertiesLauncher