【发布时间】:2018-12-12 17:08:16
【问题描述】:
我正在尝试找出一种方法来了解启动 SpringBoot 的 Main-Class 的名称。
例如
@SpringBootApplication
public class SampleApplication {
public static void main(String[] args) {
SpringApplication.run(SampleApplication.class, args);
}
@RestController
public class SampleController
{
@GetMapping("/hello")
pubic String sayHello()
{
System.out.println("Need start class name: "+System.getProperty("sun.java.command"));
return "hello";
}
}
}
当我使用 java -jar myappname.jar 运行 springboot 时,System.getProperty("sun.java.command") 返回 org.springframework.boot.loader.JarLauncher
任何人都可以建议,我怎样才能得到实际运行类的名称。我尝试在 manifest.mf 中指定 start-class 属性。它仍然给了我org.springframework.boot.loader.JarLauncher 作为入门级。
【问题讨论】:
-
SampleApplication.class.getName()?你想解决什么具体问题?
-
我需要找到正在运行的 jar 的版本,而不必查看 Manifest.MF。在纯 Java 意义上,我想使用
Package pack = Package.getPackage(mainClassName); pack.getSpecificationVersion()这就是为什么,我需要带有 @SpringBootApplication 注释的 mainClassName。 -
为什么不将版本作为属性包含在应用程序资源中?会容易得多。 spring boot maven/gradle 插件为你做到了:docs.spring.io/spring-boot/docs/2.1.1.RELEASE/gradle-plugin/…, docs.spring.io/spring-boot/docs/2.1.1.RELEASE/maven-plugin/…
标签: spring spring-boot