java不需要编译,Java也可以不用编译直接执行了?

Java通常需要编译后执行,但在OpenJDK 11中引入新特性,允许直接执行单个Java源文件。通过JEP 330,Java源码可以直接运行,类似于脚本。这一功能通过JVM内部处理源文件,编译并调用特定类的main方法实现。文章通过实例展示了如何直接执行Java源码,并解释了其内部工作原理。
摘要由CSDN通过智能技术生成

我们都知道java是静态语言,也就是说,如果你想执行java程序,就必须先编译,再执行。

那本文为什么说,java可以不编译直接执行了呢?

其实,这个是OpenJDK11里新加的一个feature,目的是使单个文件的java源码可以无需编译,直接执行。

下面的JEP里对该特性做了详细的描述:

我们先写个小例子实验下:

$ cat Test.java

public class Test {

public static void main(String[] args) {

System.out.println("hello");

}

}

$ java Test.java

hello

真的可以执行,神奇。

JEP 330 中还提到,在类Unix操作系统下,上面的代码还可以以 "Shebang" 形式执行。

我们再写一个例子看下:

$ cat Test

#!/usr/bin/java --source 12

public class Test {

public static void main(String[] args) {

System.out.println("hello");

}

}

$ chmod +x Test

$ ./Test

hello

看到没,我们用java写的代码居然可以像shell脚本一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值