Redian新闻
>
简化 Java 开发:启动多文件源码程序

简化 Java 开发:启动多文件源码程序

科技

作者 | A N M Bazlur Rahman
译者 | 明知山
策划 | Tina

JEP 458(启动多文件源码程序)已经在 JDK 22 中交付。这个 JEP 提议对 Java 启动器进行增强,可以执行包含一个或多个文件的 Java 源码应用程序。这样就可以通过推迟一个完整的项目设置来实现从小型应用程序到大型应用程序的渐进式过渡。

JDK 11 引入了 JEP 330 ,开发者可以直接使用 java 命令执行单个文件源码程序,但这个功能仅限于包含在单个 .java 文件中的程序。新的增强将此功能扩展到多文件源代码程序,通过减少初始设置要求并允许更加探索性的编程方法来促进更无缝的开发过程。

这一动机源于这样一个认识:所有大型程序都是从小项目开始的。在开发的早期阶段,重点是进行调试和探索,而不是最终的可交付成果。项目结构通常是流动的,在开发过程中频繁变更。JEP 458 通过执行多文件源码程序而不需要进行显式编译来支持快速迭代和变更,这在开发的初始阶段是至关重要的。这种方法通过消除学习和配置额外工具(如 Java 编译器(javac)或第三方构建系统)的即时需求,大大降低了经验丰富和新手开发者的障碍。

这个特性简单而强大。例如,假设一个目录包含两个文件,Prog.javaHelper.java,每个文件声明了一个类:

// Prog.javaclass Prog {    public static void main(String[] args) { Helper.run(); }}// Helper.javaclass Helper {    static void run() { System.out.println("Hello!"); }}

运行 java Prog.java 将在内存中编译 Prog 类并调用它的 main 方法。如果 Prog 类引用了 Helper 类,则启动器将自动在内存中编译 Helper.java。这个过程由 Java 启动器动态管理,根据需要编译和加载类,而不强制执行特定顺序,从而促进更灵活的开发工作流程。

为了确保与现有 Java 项目的顺利集成,增强功能规定只编译程序直接引用的 .java 文件。这样可以防止意外编译位于同一目录中的过时或实验性代码。此外,启动器遵循 Java 的打包约定,要求按照包结构组织源文件。这种结构化方法延伸到了模块化源码程序的处理,启动器能够识别并根据源树根目录中是否存在 module-info.java 文件来编译模块。

该提案明确规定了一些“非”目标。它明确表示,不支持通过 "shebang" 机制启动多文件源码程序,只支持单文件程序。此外,它的目标不在于简化源码程序中外部库依赖的集成,但在未来潜在的增强中会考虑这一目标。

这次对 Java 应用启动器的更新代表了 Java 开发生态系统向前迈出了重要一步,满足了 Java 社区不断发展的需求。

查看英文原文

https://www.infoq.com/news/2024/02/multi-file-program-launching/

声明:本文为 InfoQ 翻译,未经许可禁止转载。

今日好文推荐

李一舟 AI 课程下架:营利千万,搬运近百开源模型;程序员因bug 被要求归还年终奖;阿里辟谣:大模型员工不 996 | Q资讯

与Sora同架构的Stable Diffusion 3.0 震撼发布!4 秒视频生成却翻车,网友:还是等 Sora 吧!

性能媲美 8 卡 H100,但运行三年,推理成本比 H100 高 30 多倍!Groq CEO:它正在接近免费

3700 万美元“卖身救命”,泥潭深陷的 MariaDB 准备退市

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
只会写代码的程序员要不存在了?大模型浪潮下开发者概念泛化 | InfoQ 研究中心Apache Doris 聚合函数源码阅读与解析两首《万家灯火》如何加快大型遗留应用程序的开发速度?洛杉矶春节活动多,迪士尼有大惊喜!过年出游走起Quarkus 开发基于 LangChain4j 的扩展,方便将 LLM 集成到 Quarkus 应用程序中受2038年时间戳“炸弹”影响,Linux6.9将弃用ext2文件系统驱动程序凌晨,"美英联军发动多次空袭"中国程序员 VS 美国程序员,太形象了...1人开发、Steam好评97%,这款“超简化”RTS塔防游戏赢得满堂彩!《再见,布里诺斯艾利斯》利用 CRaC,将 Java 应用程序恢复启动时间缩短到几毫秒在多文化世界中成长:经验、挑战与收获刘世锦:启动新一轮改革厨房好帮手~摩动多功能佐料机!一键绞肉制作辅食姜蒜佐料,四碗双刀不串味!开发环境管理器 Daytona 开源,实现一键启动开发环境2024年圣地亚哥1月游 | 活动多到逛不完!2023虽然过的不尽人意但是也要总结一下!传奇程序员Kent Beck:LLM如何放大程序员技能 | 极客时间什么是系统调用机制?结合Linux0.12源码图解嫉妒的心灵不美丽突发:特斯拉启动史上最血腥裁员!“繁花”同款,撬动多少生意?关于朱令铊中毒的一点讨论“鱼油风”刮的太大了,翻了好多文献,就得到了这个结论Create 2024百度AI开发者大会:李彦宏带来三大AI开发工具,让人人都是开发者Kubernetes:kube-scheduler 源码分析突发!美军对伊拉克发动多轮空袭书面作业减下去,科学活动多起来,生物王国探奥秘…… | 新春走基层11名硕、博研究生,实名举报导师造假!校方回应:启动调查开源日报 | 构建一个类似英伟达CUDA的开源生态;“AI程序员”大杀四方,人类程序员开始反击;Podman 5.0发布教授被学生集体举报学术不端 华中农业大学回应:启动调查程序,对学术不端行为零容忍“干掉程序员”,百度是认真的!发布三大开发工具和全新操作系统,李彦宏:只要会说话就会干开发Kimi爆火!网站一度宕机,“只需10分钟,接近任何领域初级专家水平”,公司:启动200万字长文本内测跟着“宝总”赚钱!《繁花》同款,还能撬动多少生意?
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。