例如,myproject-0.0.1-SNAPSHOT.jar包是使用Spring Boot maven插件打包后的可直接执行的jar包,即,可以使用命令java -jar myproject-0.0.1-SNAPSHOT.jar
来运行。
打开jar包中的MANIFEST.MF文件,内容如下:
- Main-Class:这是根据jar文件规范生成的。这个属性是独立应用打包成可执行的jar包时包含的属性。可执行的jar是可以通过调用
java -jar x.jar
来执行。这个属性的值是主应用的类名,launcher 将在启动的时候加载该类。类名后面不要包含.class
扩展名。规范参见:
https://docs.oracle.com/en/java/javase/19/docs/specs/jar/jar.html#main-attributes
- Start-Class:这个属性的值指明的类中包含了main方法。例如:
package myproject.com.thb;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@SpringBootApplication
public class MyApplication {
@RequestMapping("/")
String home() {
return "Hello World";
}
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}