一步搞定编译与运行单文件Java程序

学过Java的都知道如何使用 javac 编译器将 Java 程序编译为字节码,然后使用 Java 启动器 java 运行生成的 class 文件。自 Java 诞生以来,一直采用这种方式编译和运行 Java 程序,这也是我们在开发应用程序时将使用的方法。

不过,从 JDK 11 开始,对于某些类型的简单 Java 程序,可以直接从源文件编译和运行,而无需先调用 javac,也可以称为源文件启动功能。要实现这一点,只需将带有 java 文件扩展名的源文件名称传递给 java 即可。这会使 java 自动调用编译器并执行程序。

比如,有一个Java文件命名为HelloWorld.java,在其所在目录下打开命令行并执行以下命令会自动编译并运行该程序:

java HelloWorld.java

在这种情况下,HelloWorld 类会一步完成编译和运行而无需使用 javac。但请注意,这样运行不会创建 class 文件,编译是在后台完成的。因此,若要重新运行程序,必须再次执行源文件。

源文件启动功能的一个用途是方便在脚本文件中使用 Java 程序。对于短小的一次性程序,它也很有用。在某些情况下,它可以让运行简单的示例程序变得稍微容易一些,但它并非 Java 正常编译/执行过程的通用替代品。

尽管直接从源文件启动 Java 程序的新能力颇具吸引力,但它也存在一些限制:

首先,整个程序必须包含在一个源文件中。然而,大多数实际程序会使用多个源文件。

其次,它总是会执行文件中找到的第一个类,并且该类必须包含 main() 方法。如果文件中的第一个类不包含 main() 方法,启动将会失败。这意味着开发人员必须严格遵循代码的组织方式,即使更愿意以其他方式组织它。

第三,由于不会创建class 文件,使用 Java 运行单文件程序不会生成可被其他程序复用的类文件。由于这些限制,使用 Java 运行单文件源程序可能有用,但它本质上是一种特殊情况下的技术。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值