日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

shebang_Shebang来Java了吗?

發布時間:2023/12/3 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shebang_Shebang来Java了吗? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

shebang

盡管添加對Unix風格的shebang ( #! )的支持從來不是 JEP 330 [“啟動單文件源代碼程序”]的主要目標,但圍繞JEP 330“單個文件源程序”的潛在功能存在一些問題。為了支持Unix風格的shebang ,在OpenJDK jdk-dev郵件列表上引起了廣泛的討論。 這場“激烈的討論”導致Mark Reinhold在JEP 330 的審查期 (現在是5月31日結束)上增加了一周時間 ,以便就JDK 330的目標JEP 330進行進一步的討論。

盡管對于是否應該添加shebang支持仍然存在一些分歧 ,但似乎共識已轉移到一個提案,以明確區分常規的獨立于平臺的Java源代碼文件(以擴展名.java結尾)和新的。 JEP 330“可執行”的平臺特定的“單文件源代碼程序”。 明顯的區別是值得注意的,因為它允許將Shebang表示在后者中(JEP 330可執行平臺特定的單文件源代碼程序),而不能在前者中使用(我們所使用的傳統Java平臺無關的源代碼)。都習慣了)。

在此討論中, 喬納森·吉爾斯 ( Jonathan Giles)的一條消息指出“不想更改JLS或javac的各種原因”,并指出“ shebang腳本是在某些(但不是全部)平臺上定義的可執行格式,”指出“創建一個shebang腳本通常不只是在文件中添加第一行?!边€闡明了在傳統Java源代碼和JEP 330可執行Java腳本之間進行顯式區分的概念:

雖然將文件重命名為命令友好名稱是可選的,但也希望將其重命名。 例如,名為“ HelloWorld.java”的源文件可能被安裝為“ helloworld”。 而且,盡管JEP描述了使用`java HelloWorld.java`執行小型單文件程序或僅使用`helloworld`作為特定??于平臺的shebang腳本執行的用例,但似乎并沒有常見的用例執行`HelloWorld.java`。 因此,如果通常將shebang腳本重命名為命令友好名稱,則將無法使用“ javac helloworld”直接對其進行編譯,因為這對于Javac而言不是有效的命令行。 這降低了使javac忽略shebang行的任何潛在便利。

由于Java源文件與特定于平臺的可執行腳本是不同的工件,因此有區別地對待它們是有道理的,并且由于我們不想更改Java語言以支持shebang行,因此建議修改JEP和實現,以便shebang絕不會從Java源文件(即以`.java`結尾的文件)中刪除行。 這就避免了處理Java源文件的工具生態系統必須處理諸如shebang行之類的任意工件的問題。 所做的更改仍將允許直接執行Java源文件(如java HelloWorld.java)和執行shebang腳本(如helloworld)。

下表總結了與每種“ Java”文件樣式相關的特征和優點。

項目 傳統Java源文件 JEP 330可執行單文件源代碼程序
內容描述
/名稱
“ Java源文件(以.java擴展名結尾) ” “ 可執行腳本(不使用[ .java ]擴展名。) “
“ Java源文件 ” “ shebang腳本 “
“ Java源文件 ” “ 包含Java代碼的腳本 ”或“ 特定于平臺的可執行腳本 ”
“ Java源文件,由以'.java'結尾的文件名標識 ”
舍邦 不支持 支持的
平臺 獨立 依附
顯式編譯 沒有

喬納森·吉本斯(Jonathan Gibbons)總結了JEP 330的意圖 :“這里的總主題不是將Java演變為腳本語言,而是使諸如Java啟動器之類的工具更友好,以便支持在可執行文本文件中使用Java源代碼。以減少運行簡單程序的儀式?!?

討論還涵蓋了其他方法,例如binfmt_misc (另請參見此處 ),Unix風格的“ here文檔 ”( 此處定義文檔 ),“ 在Java啟動器中支持'-'STDIN源 ”以及將Linux更改為支持“ la”。 -la-bang: //! 。

討論中另一個有趣的旁注是Brian Goetz 對JEP 330如何達到其當前狀態的“追溯” 。 他談到了導致人們意識到的“無數小時的傾聽人們對Java的關注”,“人們表達關注的一個普遍主題是'激活能量'; 用Java做簡單的事情需要太多的固定工作。” Goetz指出,JShell和JEP 330是解決此問題的許多可能方法中的兩種,并且這兩種方法是在考慮“成本(在多個維度上)”后做出“關于哪種方法影響最大的主觀選擇”之后,從眾多方法中選擇的。做出這些選擇時的收益和利益(或我們對收益的主觀估計)?!?

因此,“常規Java”源代碼文件將不會得到shebang的支持,但這并不是什么大問題,因為它們確實不需要它們。 但是,用Java編寫的基于JEP 330的基于平臺的可執行單文件腳本似乎將在第一行中支持可選的shebang。 我們可能會在本周四之前知道JEP 330是否將針對JDK 11。

翻譯自: https://www.javacodegeeks.com/2018/05/shebang-coming-java.html

shebang

總結

以上是生活随笔為你收集整理的shebang_Shebang来Java了吗?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。