JAVA18
jwebserver 구동
공식사이트에서 캡처 이미지를 이용해보겠다.

짧은 영어능력으로 일단 이해한 내용을 요약하면!
Jetty、Nginx 등 기존 웹서버를 대체하기위함이 아닌 순수 테스트,학습목적으로 만들어 졌다.
인증, 시큐리티, 액세스컨트롤, 암호화 등 기능은 지원하지 않는다.
HTTP/1.1 만 지원하고 HTTPS는 지원 안한다!
GET、HEAD 요청만 지원한다.
명령을 통한 Java 클래스 구동이 가능하다.
아주 간단한 index.html 파일하나 만들어보자!
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>
<h1>안녕하세요 신비한 비 티스토리 블로그 입니다!</h1>
</div>
<div><h3>티스토리블로그:</h3></div>
<url>https://rainsister.tistory.com/</url>
<div><h3>깃북블로그:</h3></div>
<url>https://app.gitbook.com/o/oa8n0se1zcxXR1QCxPlj/home</url>
</body>
</html>
내가 설치한 java 버전 그리고 home 경로를 파악해보자. 맥 기준 터미널에서
/usr/libexec/java_home -V
Matching Java Virtual Machines (7):
18.0.2.1 (x86_64) "Eclipse Adoptium" - "OpenJDK 18.0.2.1" /Users/blake/Library/Java/JavaVirtualMachines/temurin-18.0.2.1/Contents/Home
17.0.5 (arm64) "Eclipse Adoptium" - "OpenJDK 17.0.5" /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
16.0.2 (x86_64) "Eclipse Temurin" - "Eclipse Temurin 16" /Library/Java/JavaVirtualMachines/temurin-16.jdk/Contents/Home
11.0.17 (arm64) "Eclipse Adoptium" - "OpenJDK 11.0.17" /Library/Java/JavaVirtualMachines/temurin-11.jdk/Contents/Home
11.0.11 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 11" /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
1.8.0_345 (x86_64) "Eclipse Temurin" - "Eclipse Temurin 8" /Library/Java/JavaVirtualMachines/temurin-8.jdk/Contents/Home
1.8.0_292 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 8" /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
/Users/blake/Library/Java/JavaVirtualMachines/temurin-18.0.2.1/Contents/Home 로 확인 인된다.
jwebserver 를 시작하기 위해 bin 폴더까지 이동한다.
./jwebserver
Binding to loopback by default. For all interfaces use "-b 0.0.0.0" or "-b ::".
Serving /Users/blake/Library/Java/JavaVirtualMachines/temurin-18.0.2.1/Contents/Home/bin and subdirectories on 127.0.0.1 port 8000
URL http://127.0.0.1:8000/
127.0.0.1 - - [05/1월/2023:16:16:31 +0900] "GET /index.html HTTP/1.1" 200 -
127.0.0.1 - - [05/1월/2023:16:16:59 +0900] "GET /index.html HTTP/1.1" 200 -
추가 설명!
-h or -? or --help
Prints the help message and exits.
-b addr or --bind-address addr
Specifies the address to bind to. Default: 127.0.0.1 or ::1 (loopback). For
all interfaces use -b 0.0.0.0 or -b ::.
-d dir or --directory dir
Specifies the directory to serve. Default: current directory.
-o level or --output level
Specifies the output format. none | info | verbose. Default: info.
-p port or --port port
Specifies the port to listen on. Default: 8000.
-version or --version
Prints the version information and exits.
-b
:바인딩할 ip-p
:포트-d
:제공할 목록-o
:console 출력등급
jwebserver -p 9000 -d / -b 127.0.0.1 -o info

루트 / 디렉토리의 내용을 확인 할수 있다.
jwebserver 구동(with java code)
테스트용 메인함수 하나 만든다.
public static void main(String[] args) {
System.out.println("구동완료!!!");
var addr = new InetSocketAddress(9898);
var server = SimpleFileServer.createFileServer(
addr, Path.of("/"), SimpleFileServer.OutputLevel.INFO);
server.start();
}


확인을 위해 9898 포트 새로 띄여보면 정상적으로 시작된걸 알수 있다.
끝!
Last updated