2017-11-20 17 views
0

사용하여 Java 물러 HTTP 서버를 시작합니다 :어떻게 컴파일하고 나는 간단한 자바 물러 HTTP 서버에 대한 다음 프로젝트 폴더 설정 한 명령 줄

- HelloWorldServer.java 

- build 

- lib 

내가 lib 디렉토리에 XNIO 및 JBOSS 로깅을 다운로드합니다. 나는 Gradle이 의존성을 다운로드하도록함으로써 올바른 배포판을 다운로드했는지 확인했다. 하지만 lib 폴더에 jar 파일을 복사 할 수 있도록 수동으로 실행하여 더 많은 것을 이해하려고합니다.

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 

답변

0

당신은 당신이 이런 식으로 실행해야 directory.So 빌드 내부 클래스 파일을 생성하기 위해 자바 컴파일러 요청 -d 플래그 이후 :

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

다음과 같이 출력됩니다. Error : 주 클래스 HelloWorldServer를 찾을 수 없거나로드 할 수 없습니다 : java.lang.ClassNotFoundException : HelloWorldServer' –

+0

@jimmyt 지금 업데이트 된 명령을 시도해보십시오. 로컬로 테스트 한 결과 정상적으로 작동합니다. . –

+0

'java -cp "lib/*"'가 작동하지 않습니다. 각 종속성은 별도로 나열되고 작동하려면 콜론으로 구분해야합니다. –