組み込みHTTPサーバー
Java 18にはプロトタイピングやファイル配信のための組み込み簡易HTTPサーバーが含まれている。
コード比較
✕ Java 8
// Install and configure a web server
// (Apache, Nginx, or embedded Jetty)
// Or write boilerplate with com.sun.net.httpserver
HttpServer server = HttpServer.create(
new InetSocketAddress(8080), 0);
server.createContext("/", exchange -> { ... });
server.start();
✓ Java 18+
// Terminal: serve current directory
$ jwebserver
// Or use the API (JDK 18+)
var server = SimpleFileServer.createFileServer(
new InetSocketAddress(8080),
Path.of("."),
OutputLevel.VERBOSE);
server.start();
このコードに問題がありますか? お知らせください。
モダンな方法が優れている理由
ゼロセットアップ
任意のディレクトリでjwebserverを実行するだけ——インストール・設定・依存関係は不要です。
JDK組み込み
JDK 18以降のすべてのインストールに同梱されており、Javaがある環境ならいつでも利用できます。
プロトタイピングに最適
HTML・API・フロントエンド開発のテストのために静的ファイルを即座に配信できます。
旧来のアプローチ
外部サーバー・フレームワーク
モダンなアプローチ
jwebserver CLI
JDKバージョン
18
難易度
初級
JDKサポート
組み込みHTTPサーバー
利用可能
JDK 18(2022年3月)以降、利用可能
仕組み
JDK 18ではゼロ依存のシンプルなHTTPファイルサーバーがjwebserverコマンドラインツールとSimpleFileServer APIとして追加されました。設定不要で指定ディレクトリの静的ファイルを配信できます。CLIツールは素早いプロトタイピング、テスト、アドホックなファイル共有に最適で、外部依存やフレームワークは不要です。APIはカスタムハンドラーや出力レベルを指定したプログラム的な利用もサポートします。
関連ドキュメント