在不使用 Gradle/Maven 的情况下创建 Java REST 应用程序 JAR?

Create a Java REST Application JAR without using Gradle/Maven?

使用 Gradle 我知道在 Spring Boot 嵌入式 Tomcat 服务器中创建 运行 fat jar 的方法是:

1. Gradle clean build bootRun

我想知道如何仅使用 command line 手动创建 fat jar 以便创建和 运行 与上面完全相同的 jar?

我知道要创建一个 运行 非常简单的 java 应用程序,它是:

javac myApp.java
java myApp

但是如何创建一个fat jar包含所有项目dependencies然后运行呢?不使用像 gradlemaven?

这样的工具

基本上,您可以使用指定 main() 位置的清单来破坏 class(es)。对于名为 Hello 的 classic "Hello World" class,清单如下所示...

Manifest-Version: 1.0
Main-Class: Hello
Class-Path: .

你会像这样构建它...

$ jar cvmf MANIFEST.MF Hello.jar Hello.class 
added manifest
adding: Hello.class(in = 415) (out= 285)(deflated 31%)

然后像这样执行...

$ java -jar Hello.jar
Hello World

您可以对具有 jar 依赖项(包括嵌入式 Tomcat)的更复杂的应用程序执行相同的操作,但您需要将所有依赖的 jar 解压缩到一个目录中,并将其包含在 jar 中。像 Gradle 这样的构建工具可以使这更容易。