翻译:叩丁狼教育吴嘉俊
JEP330-启动单文件代码程序(Launch Single-File Source-Code Programs)是即将更新的JDK11(18.9)版本中一个很不错的功能。这个功能允许你直接使用java解析器运行java代码。java文件会在内存中执行编译并且直接执行。唯一的约束在于所有相关的类必须定义在东一个java文件中。
这个特征非常适合刚刚准备学习java的童鞋,或者想快速尝试一些简单代码。这个功能和jshell会成为所有java初学者的最强大的工具。不仅仅如此,所有的成熟的开发,可以使用这个工具来快速验证和学习新的API。
在本文中,我不会具体去探讨这个功能是如何实现的,相反,我们会集中精力在如何使用这个功能。好了,我们仍然从Hello World示例开始!
最基础的案例
把以下代码保存到Hello.java文件中:
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World!!!");
}
}
我们将会按照下面的方法来执行上面的代码:
PS G:\samples\java11\single-file> java HelloWorld.java
Hello World!!!
在上面的例子,我们仅仅只是在一个类中包含了一个main方法。我们直接使用java命令去执行这个.java文件。如果这个文件不是以.java结尾,我们可以使用—source参数来执行,这个待会会看到。
包含命令行参数
接下来的案例,我们传入一个参数,允许给所有人打招呼:
public class Greeting{
public static void main(String[] args){
if ( args == null || args.length < 1 ){
System.err.println("Name required");
System.exit(1);
}
System.out.println(String.format("Hello %s!!", args[0]));
}
}
我们把上面的代码保存到HelloGreeting.java文件中。注意,这个文件名字和我们的类的名字不匹配。我们按照如下命令执行:
PS G:\samples\java11\single-file> java HelloGreeting.Java sana
Hello sana!!
任何一个跟在文件名后面的参数都被作为方法的参数传入方法执行。我们把Hello