五个源文件,
一个能跑的静态服务器
不需要 Spring、不需要 Tomcat、不需要 Node。整个后端就是 5 个 Java 文件,
javac 编译、jar 打包、java -jar 启动。
手机、旧笔记本、二手平板都能跑。
$ ./build.sh
[1/2] 编译源码到 target/class
[2/2] 打包 jar 到 target/jar
✅ 构建完成:target/jar/Code-Webserver.jar
$ ./Code-Webserver
Code-Webserver service started on
http://127.0.0.1:8080
资源目录:lib/page(外部优先,其次 jar 内部)
运行模式:jar
$ curl -o /dev/null -w '%{http_code}' localhost:8080
200
零第三方依赖
只用 com.sun.net.httpserver,JDK 里本来就有。没有 Maven、没有依赖树。
外部资源优先
改前端不用重新打包:外置 lib/page 优先,读不到才回落到 jar 内部。
两种运行模式
java CodeWebserver 直接跑 class,或 java -jar 跑打包版,启动时自动识别。
手机上也能跑
Termux 里 pkg install openjdk-17 就能编译运行,所以能拿旧手机当轻量服务器。
三步跑起来
bash · Termux / Linux / macOS解压后构建
源码在 src/,编译产物落在 target/class,jar 落在 target/jar。
bash build.sh启动服务
启动脚本会先定位到自己所在目录,再去找 target/jar 里的 jar,不用担心当前路径。
./Code-Webserver换成你自己的页面
把文件丢进 lib/page,访问路径就是文件名。根路径自动返回 index.html。
curl http://127.0.0.1:8080/index.html一个请求,三条路找文件
ResourceLoader当前工作目录的 lib/page —— 命中就直接读文件。改网页不用重打包,刷新即见。
jar 包内部的 lib/page —— 没外置目录时读这里,所以单个 jar 也能独立分发。
classpath —— 前两条都落空时兜底,适配 java CodeWebserver 的源码运行方式。
拿走它
v1.1 · 2026-11-10SHA-256: 18be42b3a3e9c96edacd4f08574607183bb3756bf29fd13a924104571c113c63
包里有什么
没有构建产物、没有多余配置,就是能直接编译的一整套。
- src/CodeWebserver.java
- src/RunModeDetector.java
- src/ResourceLoader.java
- src/WebHandler.java
- src/MimeMap.java
- lib/page/index.html
- build.sh
- Code-Webserver
- README.md
- .gitignore