Bendi新闻
>
简化 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

相关新闻

今年大选前要大赦?民主党人敦促拜登:简化程序给非法移民发绿卡,避免被川普驱逐教授被学生集体举报学术不端 华中农业大学回应:启动调查程序,对学术不端行为零容忍JavaScript 开发的挑战与未来:简化与创新的平衡90 后程序员辞职搞灰产:开发视频搬运软件、不到一年获利超 700 万,结局很刑!90后程序员辞职搞灰产:开发视频搬运软件、不到一年获利超700万,结局很刑!开源版AI程序员来了:GPT-4加持,能力比肩Devin,一天1.4k Star知乎热议:为什么大多数程序员都不做个人独立开发?Python程序因一个字符串被苹果App Store封杀?开发者:审核规则太黑了!气炸了!程序员因 Bug 被公司要求归还 4 万多年终奖,网友:不还!“干掉程序员”,百度是认真的!发布三大开发工具和全新操作系统,李彦宏:只要会说话就会干开发JetBrains 推出 IDE 服务,简化开发工具管理存款继承手续简化:限额提至5万元,新增黄金国债理财于澄暄:程序缺失与舆论狂欢巨头们冲进演出票务市场:小程序、主办方、直播带票,谁是未来?如何加快大型遗留应用程序的开发速度?这款中国程序员开源的游戏引擎,让你用不到100行代码就写出“愤怒的小鸟”一款整洁、开源、专属程序员的 Web 笔记应用程序员必备:彻底弄懂常见的 7 种中文字符编码安徽铜陵居民楼坍塌! 4人死亡; 突发! 以军与埃及士兵交火, 古特雷斯发声; 伊朗宣布启动总统选举程序新规《海警机构行政执法程序规定》:对涉嫌违反出境入境的外国人可适用拘留审查,期限不得超过三十日美国|绿卡来了?拜登或出手:大选前简化无证移民拿身份途径!这些人优先!绿卡来了?拜登或出手:大选前简化无证移民拿身份途径!这些人优先!一年14万人申请难民!加拿大拟议新规:加快驱逐程序!受2038年时间戳“炸弹”影响,Linux6.9将弃用ext2文件系统驱动程序
logo
联系我们隐私协议©2024 bendi.news
Bendi新闻
Bendi.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Bendi.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。