天天看點

Java 11 快要來了,編譯 & 運作一個指令搞定!

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 新版本當中。