Java 25 后的时代:像写 Python 一样写 Java

查看 104|回复 10
作者:Cbdy   
Compact Java App - 像写 Python 一样写 Java
项目地址: https://github.com/alchem-x/compact-sb
什么是 Compact Java App ?
Compact Java App 是基于 Java 25 新特性( JEP 512 )的编程方式,让你可以像写 Python 一样写 Java 程序:
// 传统的 Java Hello World
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
// Compact Java App Hello World
void main() {
    IO.println("Hello, World!");
}
核心优势
  • 零样板代码 - 无需类声明、public static void main 等繁琐语法
  • 自动导入 - 自动导入 java.base 所有常用类
  • 简洁 I/O - 新的 IO 类简化控制台输入输出
  • 平滑演进 - 可随时扩展到完整 Java 程序
  • 原生性能 - 编译后与传统 Java 完全等效

    当前项目介绍
    这个仓库演示了 Compact Java App 的实际应用 - 一个轻量级的 Web 服务器实现。
    项目结构
    compact-sb/
    ├── Lu.java              # 紧凑 Java App 主程序
    ├── CompactSB.java       # Web 服务器核心
    ├── lib/                 # 依赖库
    └── README.md
    快速开始
    [ol]
  • 确保 Java 25+已安装
    [/ol]
    java -version  # 需要 Java 25 或更高版本
    [ol]
  • 运行应用
    [/ol]
    java Lu.java && java -cp "lib/*" CompactSB.java
    [ol]
  • 访问 Web 服务
    打开浏览器访问 http://localhost:8080/
    [/ol]
    核心代码示例
    Lu.java - 紧凑 Java App 的精髓:
    void main() {
        // 简洁的 Web 服务器启动
        IO.println("Starting Compact Web Server...");
        // 自动导入所有 java.base 类
        var server = new Server();
        server.start(8080);
        IO.println("Server running at http://localhost:8080/");
    }
    为什么选择 Compact Java App ?
    [ol]
  • 教学友好 - 第一天就能写出实用的程序
  • 脚本化 - 用 Java 写脚本,享受强类型和优秀性能
  • 零配置 - 无需复杂项目结构和构建工具
  • 生产就绪 - 可平滑扩展到企业级应用
    [/ol]
    与传统 Java 对比
    [td]特性[/td]
    [td]传统 Java[/td]
    [td]Compact Java App[/td]
    Hello World
    5 行,4 个概念
    3 行,1 个概念
    依赖管理
    需要 Maven/Gradle
    直接运行源文件
    学习曲线
    陡峭
    平缓
    开发速度

    快速
    运行时性能
    优秀
    同样优秀
    应用场景
  • 🎓 编程教学 - 让学生快速看到成果
  • 🚀 快速原型 - 验证想法的最佳选择
  • ⚙️ 系统脚本 - 替代 Shell 脚本的安全选择
  • 📊 数据处理 - 处理 CSV 、JSON 等数据文件
  • 🌐 Web 服务 - 如本项目的轻量级服务器

    技术细节
  • 隐式类声明 - 源文件自动转换为 final 类
  • 实例 main 方法 - 无需 static 修饰符
  • 自动导入 - java.base 模块 54 个包自动可用
  • IO 简化 - IO.println()替代System.out.println()

    下一步计划
    这个项目展示了 Compact Java App 在 Web 开发中的应用。未来可以:
    [ol]
  • 添加更多路由处理功能
  • 集成模板引擎
  • 支持静态文件服务
  • 添加数据库连接示例
  • 创建 RESTful API 演示
    [/ol]
    相关资源
  • 本项目 GitHub 仓库 - 源代码和示例
  • JEP 512 官方文档 - 技术规范
  • OpenJDK 25 下载 - 获取 Java 25

    Compact Java App 让 Java 重新变得简单优雅,同时保持其强大的生态系统。未来已来,让我们一起拥抱这个全新的 Java 时代! 🚀
    本项目是 Compact Java App 理念的实践演示,展示了如何用简洁的代码构建实用的应用程序。

    CompactJavaApp, JEP512, Java25

  • codehz   
    还没有像 c#那样可以直接省略 main😉
    Tomatopotato   
    java 都精简成这样了,spring 这种框架是打算继续 java kotlin 两脚走路吗?
    beginor   
    感觉像是 AI 写的,是不是该举报一下?
    realpg   
    java 的繁复从来都不是语法简洁不简介
    而是输出个 helloworld 都得整个 hanlder provider
    CodeCodeStudy   
    原来计划是用 println("Hello, World!");,现在还有加上 IO.
    NotFoundEgg   
    Java 总是想办法精简这种无关紧要、用 IDE 一键生成不用自己写的代码( record 、psvm 、sout ),根本解决不了什么痛点
    banmuyutian   
    我不想写 py 味的 Java ,就像有人不想写 Java 味的 Go
    MRongM   
    MAKE JAVA GREAT AGAIN
    xiangyuecn   
    已经进化到了 notepad.exe 无法编写的程度,可喜可贺
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部