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

时间:2017-11-20 10:07:33

标签: java undertow

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

import java.util.*;
import java.math.*;


public class Problem15 {

    public static void main (String[] args) {
        int length = getLength();
        int width = length;

        BigInteger Lfact = new BigInteger("fact(length)");
        BigInteger Wfact = new BigInteger("fact(width)");
        BigInteger LWfact = new BigInteger("fact(Length+width)");

        BigInteger Denom = Lfact.multiply(Wfact);

        System.out.println("For grid size "+length+"X"+width+" the total no of routes are "+LWfact.divide(Denom));

    }

    private static int getLength() {
        System.out.print("Please enter grid length - ");
        Scanner inp1 = new Scanner (System.in);

        int length = inp1.nextInt();

        inp1.close();

        return length;  
    }

    public  BigInteger fact(int num) {
        BigInteger result = new BigInteger("1");

        for(int i = num; i > 1; i--) {
            result = result.multiply(BigInteger.valueOf(i));
        }

        return result;
    }
}

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

我的- HelloWorldServer.java - build - 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

1 个答案:

答案 0 :(得分:0)

由于使用-d标志,你要求java编译器在build目录中生成类文件。所以你需要像这样运行:

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