JDK 11 確定將引入 Shebang #! 符號
按計劃,JDK 11 將於 9 月釋出。隨著時間的臨近,越來越多的 JEP 正被不斷被新增至 JDK 11 的開發列表中。
2017 年 12 月 1 日,來自 Oracle 的開發者 Jonathan Gibbons 建立了 JEP 330 草案,名為 “Launch Single-File Source-Code Programs”,主要是改進 Java Launcher 以支援一個命令執行單個 Java 原始碼檔案。換句話說,在條件滿足的情況下,可以簡單地直接編譯並執行單檔案程式,而不再需要呼叫 javac ,也不需要打包 jar 檔案。
比如說,可直接執行:
java HelloWorld.java
而不再需要:
javac -d <memory> HelloWorld.java java -cp <memory> hello.World
此外,JEP 330 還引入了通常在 Unix 系統指令碼中使用的 Shebang 和相關技術,將支援使用該機制來執行 Java 程式,例如:
#!/path/to/java --source version
在描述中,Jonathan Gibbons 表示該 JEP 的目標不是為了改變 Java 語言規範(JLS)或 javac 來接納 shebang,也不是為了將 Java 語言演變為通用指令碼語言。而是為了更純粹的編譯小型程式,降低開銷。
2018 年 5 月 17 日-24 日,JEP 330 草案在郵件列表中發起評審,由於觀點存在分歧,討論較為激烈,導致延長一週的評審時間一直到 5 月 31 日。6 月 1 日,Java 首席架構師 Mark Reinhold 表示雖然不是每個提交者都對這個 JEP 完全滿意,但大家基本已達成共識,JEP 330 將被正式新增至 JDK 11 中。
At this point not every Committer is completely happy with this JEP, but it appears to me that Jon has satisfactorily addressed the issues raised thus far and updated the JEP accordingly. I’ve therefore targeted this JEP to JDK 11.
– Mark
相關文章
- R1-003 Linux上的Shebang符號——#!Linux符號
- _error-type_cout_不明確的符號Error符號
- CSS如何正確顯示人民幣符號¥CSS符號
- LNK1169 找到一個或多個衝定義的符號符號
- clojure中符號symbols 和變數vars的正確理解符號Symbol變數
- 電子墨水鍵盤來了!蘋果確定引入MacBook上蘋果Mac
- 為WinDbg設定符號檔案路徑符號
- 無符號數相減得到的是無符號還是有符號?符號
- [C]有符號數和無符號數符號
- CSS @ 符號CSS符號
- 特殊符號符號
- 符號使用符號
- 樹4-樹的確定與#號建立
- 符號(註釋符+轉義符+接續符)符號
- 新表情符號Emoji 14.0草案名單公佈 握手錶情符號可定製膚色符號
- APUE 2-17 確定檔案描述符個數
- 將不確定變為確定~類中的屬性何時被執行
- e新表情符號Emoji 14.0草案名單公佈 握手錶情符號可定製膚色符號
- 關於有符號與無符號的位元組符號
- 符號連結符號
- Google Map 符號Go符號
- Html 特殊符號HTML符號
- PHP基本符號PHP符號
- Shell 符號(轉)符號
- 給定一個 32 位有符號整數,將整數中的數字進行反轉。符號
- <Python>識別符號、變數的定義與使用Python符號變數
- OFFICE2K符號欄的靈活設定 (轉)符號
- 深入理解ES6--6.符號與符號屬性符號
- C語言之有符號無符號整數取值範圍C語言符號
- dotNet符號檔案(pdb),符號包(snupkg)和SourceLink符號
- latex 屬於符號和根號符號
- 正則中括號點符號符號
- 查詢 - 符號表符號
- python 中 *符號Python符號
- Markdown數學符號符號
- JavaScript 識別符號JavaScript符號
- Perl 的特殊符號符號
- C++11新特性之final override識別符號C++IDE符號