---
name: "jwebserver-openjdk27"
section: "1"
platform: "linux"
package: "jdk-openjdk"
version: "27.0.1.0.3.u1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/jwebserver-openjdk27"
---

# jwebserver-openjdk27(1)

launch the Java Simple Web Server

## NAME

jwebserver - launch the Java Simple Web Server

## SYNOPSIS

`jwebserver` \[*options*\]

- *options*

  Command-line options. For a detailed description of the options, see **Options**.

## DESCRIPTION

The `jwebserver` tool provides a minimal HTTP server, designed to be used for prototyping, testing, and debugging. It serves a single directory hierarchy, and only serves static files. Only HTTP/1.1 is supported; HTTP/2 and HTTPS are not supported.

Only idempotent HEAD and GET requests are served. Any other requests receive a `501 - Not Implemented` or a `405 - Not Allowed` response. GET requests are mapped to the directory being served, as follows:

- •

  If the requested resource is a file, its content is served.

- •

  If the requested resource is a directory that contains an index file, the content of the index file is served.

- •

  Otherwise, the names of all files and subdirectories of the directory are listed. Symbolic links and hidden files are not listed or served.

MIME types are configured automatically, using the built-in table. For example, `.html` files are served as `text/html` and `.java` files are served as `text/plain`.

`jwebserver` is located in the jdk.httpserver module, and can alternatively be started with `java -m jdk.httpserver`. It is based on the web server implementation in the `com.sun.net.httpserver` package. The `com.sun.net.httpserver.SimpleFileServer` class provides a programmatic way to retrieve the server and its components for reuse and extension.

## USAGE

-

  ```
  jwebserver [-b bind address] [-p port] [-d directory]
             [-o none|info|verbose] [-h to show options]
             [-version to show version information]
  ```

## OPTIONS

- `-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.

To stop the server, press `Ctrl + C`.

## STARTING THE SERVER

The following command starts the Simple Web Server:

-

  ```
  $ jwebserver
  ```

If startup is successful, the server prints a message to `System.out` listing the local address and the absolute path of the directory being served. For example:

-

  ```
  $ jwebserver
  Binding to loopback by default. For all interfaces use "-b 0.0.0.0" or "-b ::".
  Serving /cwd and subdirectories on 127.0.0.1 port 8000
  URL http://127.0.0.1:8000/
  ```

## CONFIGURATION

By default, the server runs in the foreground and binds to the loopback address and port 8000. This can be changed with the `-b` and `-p` options. For example, to bind the Simple Web Server to all interfaces, use:

-

  ```
  $ jwebserver -b 0.0.0.0
  Serving /cwd and subdirectories on 0.0.0.0 (all interfaces) port 8000
  URL http://123.456.7.891:8000/
  ```

Note that this makes the web server accessible to all hosts on the network. *Do not do this unless you are sure the server cannot leak any* *sensitive information.*

As another example, use the following command to run on port 9000:

-

  ```
  $ jwebserver -p 9000
  ```

By default, the files of the current directory are served. A different directory can be specified with the `-d` option.

By default, every request is logged on the console. The output looks like this:

-

  ```
  127.0.0.1 - - [10/Feb/2021:14:34:11 +0000] "GET /some/subdirectory/ HTTP/1.1" 200 -
  ```

Logging output can be changed with the `-o` option. The default setting is `info`. The `verbose` setting additionally includes the request and response headers as well as the absolute path of the requested resource.

## STOPPING THE SERVER

Once started successfully, the server runs until it is stopped. On Unix platforms, the server can be stopped by sending it a `SIGINT` signal (`Ctrl+C` in a terminal window).

## HELP OPTION

The `-h` option displays a help message describing the usage and the options of the `jwebserver`.
