Java 11 马上要来了,原定于 9 月发布,还有不到 3 个月了,敬请期待更多新功能被加入到 11 当中,本文本讲的是 JEP 330
这个新特性。
化繁为简,一个命令编译运行源代码
看下面的代码。
// 编译 javac Javastack.java // 运行 java Javastack
在我们的认知里面,要运行一个 Java 源代码必须先编译,再运行,两步执行动作。而在未来的 Java 11 版本中,通过一个 java
命令就直接搞定了,如以下所示。
java Javastack.java
然而,这也并没有什么卵用。我们大部分开发工作都在 IDE 工具中,所有的编译运行过程都由 IDE 完成的,真正用到命令行来编译、运行的场景真的非常少。当然,如果你是记事本大神,请收下这个功能。
从另外一面来看,这是不是意味着 javac 要退出历史舞台了呢?不会。因为,还是需要编译源代码的命令的,而不是直接运行。
支持 Shebang #! 符号运行 Java 程序
Shebang #! 这是什么鬼?这也是 JEP 330
里面的相关技术,它能支持在 UNIX 系统脚本中运行 Java 程序,如以下代码所示。
#!/path/to/java --source version
JEP 330 总结
Oracle JEP 330
这个特性只是为了为了编译和运行小型的 Java 应用程序而提供的,而不是使用 Java 变成成能通用性语言。这个特性评审时就饱受争议,但最终达成共识确认会被加入到 Java 11 新版本当中。