写点什么

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

  • 2024-03-22
    北京
  • 本文字数:1026 字

    阅读完需:约 3 分钟

大小:470.75K时长:02:40
简化Java开发:启动多文件源码程序

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


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


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


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


// Prog.java
class Prog {
public static void main(String[] args) { Helper.run(); }
}
// Helper.java
class 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/

2024-03-22 00:006347

评论

发布
暂无评论
发现更多内容

互联网系统的问题与方案 - 第四周作业

X﹏X

架构师训练营第四周-总结

王权富贵

极客大学架构师训练营

第四周作业

数字

【架构师第四周作业】

浪浪

写给大忙人看的进程和线程

苹果看辽宁体育

后端 操作系统

【架构师第四周】总结

浪浪

一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。

娄江国

极客大学架构师训练营

第四周感想

数字

架构学习第四周作业

云峰

第4周作业

架构师训练营 第四周 学习总结

RZC

第四周作业

changtai

极客大学架构师训练营

架构师训练营 - 第四周 - 作业

Anrika

极客大学架构师训练营

大型互联网应用系统使用的方案

ashuai1106

架构师 极客大学架构师训练营

架构师训练营第四周作业

fenix

大型互联网应用解决问题的技术方案和手段

GAC·DU

架构师训练营 第四周【作业】

小K

第4周总结

娄江国

极客大学架构师训练营

一个典型的大型互联网应用系统使用了哪些技术

L001

极客大学架构师训练营

架构师训练营第 0 期第四周作业

无名氏

week4.学习总结

个人练习生niki👍

大型互联网应用系统案例

戴维斯

极客大学架构师训练营

学习总结 - 架构师训练营 - 第四周

走过路过飞过

从软件架构演进“看”做好事情的三条边

学习 架构模式 极客大学架构师训练营 架构演进 三条边

互联网系统架构

陈皮

架构师训练营 - 学习笔记 - 第四周

小遵

Week 04- 作业一:一个典型的大型互联网应用系统使用了哪些技术方案和手段

dean

极客大学架构师训练营

大型互联网应用系统浅析

飞雪

第四章作业

小胖子

第 04 周作业提交

白杨

面向对象学习

一叶知秋

简化Java开发:启动多文件源码程序_编程语言_A N M Bazlur Rahman_InfoQ精选文章