1. 程式人生 > >Java 11 快要來了,編譯 & 執行一個命令搞定!

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

掃描關注我們的微信公眾號,乾貨每天更新。

image