如何使用命令行编译和启动 Java undertow HTTP 服务器

how to compile and start a Java undertow HTTP server using command line

我为一个简单的 Java undertow HTTP 服务器设置了以下项目文件夹:

- HelloWorldServer.java

- build

- lib

我下载了 XNIO 和 JBOSS- 登录到 lib。我通过让 Gradle 下载依赖项来确保我下载了正确的发行版。但我试图通过手动 运行 了解更多信息,所以我将 jar 文件复制到 lib 文件夹中。

我的 HelloWorldServer.java 看起来像这样:

import io.undertow.Undertow;
import io.undertow.util.*;


public class HelloWorldServer {
public static void main(final String[] args) {
    Undertow server = Undertow.builder()
                              .addHttpListener(8080, "localhost")
                              .setHandler(exchange -> {
                                  exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/plain");
                                  exchange.getResponseSender().send("Hello World");
                              }).build();
    server.start();
    }
}

然后我转到我的文件夹根目录并运行执行以下命令:

javac -cp "lib/*" -d build HelloWorldServer.java

现在我已经编译了应用程序,如何从终端运行它?

编辑:我的lib目录的内容如下:

hamcrest-core-1.3.jar // i believe thats not needed, but leave it anyway
jboss-logging-3.2.1.Final.jar
undertow-core-2.0.0.Alpha1.jar
xnio-api-3.3.6.Final.jar
xnio-nio-3.3.6.Final.jar

由于使用 -d 标志,您要求 java 编译器在构建 directory.So 中生成 class 文件,您需要像这样 运行 :

java -cp "build/:lib/*" HelloWorldServer