2017-11-20 2 views
0

Ich habe den folgenden Projektordner Setup für einen einfachen Java undertow HTTP-Server zu starten:wie kompilieren und einen Java undertow HTTP-Server mit der Befehlszeile

- HelloWorldServer.java 

- build 

- lib 

I heruntergeladen XNIO und JBOSS-Logging in lib. Ich habe sichergestellt, dass ich die richtigen Distributionen heruntergeladen habe, indem Gradle die Abhängigkeiten heruntergeladen hat. Aber ich versuche mehr zu verstehen, indem ich Dinge manuell ausführe, damit ich die JAR-Dateien in den lib-Ordner kopiere.

Mein HelloWorldServer.java sieht wie folgt aus:

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(); 
    } 
} 

Dann gehe ich zu meinem Ordner root und führen Sie den folgenden Befehl ein:

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

Nun, da ich die Anwendung kompiliert haben, wie kann ich laufen es vom Terminal?

EDIT: der Inhalt meiner lib Verzeichnis ist wie folgt:

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 

Antwort

0

Da mit -d Flag gefragt Sie Java-Compiler Klassendateien innerhalb Build zu erzeugen directory.So Sie wie folgt ausgeführt werden müssen:

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

Dies gibt Folgendes aus: 'Fehler: Hauptklasse HelloWorldServer konnte nicht gefunden oder geladen werden Verursacht von: java.lang.ClassNotFoundException: HelloWorldServer' –

+0

@jimmyt Bitte aktualisierten Befehl jetzt versuchen, ich habe in meinem lokalen getestet und funktioniert gut . –

+0

'java -cp" lib/* "' funktioniert nicht. Jede Abhängigkeit muss separat aufgelistet und durch einen Doppelpunkt getrennt sein, damit sie funktioniert. –

Verwandte Themen