
Java 18在jdk.httpserver模块中提供了基础Web服务器功能,支持API调用和命令行启动:
$ jwebserver -b 0.0.0.0 -p 8000注意:该服务器仅限HTTP/1.1协议,不支持PUT请求和动态内容,适用于原型开发与测试场景。示例代码:
import java.net.InetSocketAddress;
import java.nio.file.Path;
import com.sun.net.httpserver.SimpleFileServer;
import static com.sun.net.httpserver.SimpleFileServer.OutputLevel;
public class App {
public static void main(String[] args) {
var server = SimpleFileServer.createFileServer(
new InetSocketAddress(8000),
Path.of("/home/java"),
OutputLevel.VERBOSE);
server.start();
System.out.println("Server started on port 8000");
}
}通过JEP 413引入的@snippet标签改进代码文档:
/**
* 展示Optional.isPresent用法:
* {@snippet :
* if (v.isPresent()) {
* System.out.println("v: " + v.get());
* }
* }
*/Java 18统一采用UTF-8作为默认字符集,可通过-Dfile.encoding=COMPAT恢复旧版行为。
使用--finalization=disabled参数测试无finalize()时的应用行为,推荐改用try-with-resources或Cleaner API。
早期构建版本可从Eclipse Adoptium下载,功能对比参考Java Almanac。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。