java 命令直接运行包含多个 Java 源文件的程序【Java 22 新变化】

Java 11 中增加了一个功能,java 命令可以直接运行单个 Java 源代码文件,不需要首先通过 javac 编译之后再由 java 来运行。

96d59ea216b32cb8f67e35b5468603fb.png

Java 11的这个功能在一定程度上简化了 Java 程序的运行。比如 Hello World 的简单 Java 程序,直接用下面的命令就可以运行。

java HelloWorld.java

不过这种方式存在一定的局限性,只允许有一个 Java 源文件。

在 Java 22 中,java 命令直接运行 Java 源代码文件的功能得到了增强,可以直接运行包含多个 Java 源文件的程序。

f6a368f26a00cb6efcae3be87fd0065b.png

这个 JEP 的作者 Ron Pressler 也是 OpenJDK Loom 项目的首要开发者。

在使用 java 命令时,仍然是指定单个 Java 源文件作为入口,但是在运行过程中,会根据需要来编译所引用的 Java 类的源文件。运行时可以引用已经编译好的类文件和 JAR 包。

比如 Main 类引用了 GreetingService 里面的 greet 方法。

// GreetingService.java
public class GreetingService {
  public static String greet() {
    return "Hello World";
  } 
}
// Main.java
void main() {
  System.out.println(GreetingService.greet());
}

在运行 Main.java 这个 Java 源文件时,GreetingService 这个 Java 源文件也会被自动编译和加载。

java --enable-preview --source 22 Main.java

Main.java 用了预览功能来简化 Java 程序的入口类,因此需要用到 --enable-preview 和 --source 选项。

从功能上来说,Java 22 只是对已有的功能进行了改进。在不依赖构建工具的情况下,可以方便地运行多个 Java 源文件组织而成的 Java 程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值