运行单个源文件_使用一个命令执行单个Java源文件
運行單個源文件
JDK增強提案 ( JEP ) 草案于2017年末創建,名為“ 啟動單文件源代碼程序 ”(其相關的JDK問題為JDK-8192920 )。 顧名思義,該JEP草案旨在“增強Java啟動器以支持運行作為Java源代碼的單個文件提供的程序。” 換句話說,正如JEP所描述的,如果有一個典型的自包含的HelloWorld.java源代碼文件 ,則只需從命令行運行java HelloWorld.java ,而無需使用javac將HelloWorld.java編譯為HelloWorld.class在使用Java啟動器運行之前。
JEP所有者Jonathan Gibbons在將JEP引入compile -dev郵件列表時總結了這一點:
該JEP草案包含一項增強| java |的建議。 啟動器以支持運行作為Java源代碼的單個文件提供的程序。 該程序將被編譯并運行,而無需顯式調用javac或打包jar文件。
預期該功能的主要用例是運行非常簡單的Java應用程序( JEP稱其為“小型實用程序”)的人員以及希望學習基本Java功能的人們。 我在博客文章“ 通過簡單測試學習Java ”和“在沒有IDE的情況下編譯和運行Java ”中描述了類似的用例。 JEP指出,在這些用例的背景下,“純粹的儀式是在運行程序之前必須對其進行編譯。 此外,單個源文件可能會編譯為多個類文件,這給“運行該程序”的簡單目標增加了打包開銷。 希望能夠使用Java啟動器直接從源代碼運行程序。”
與該JEP草案相關的JDK郵件列表上有兩個有趣的討論要點。 討論的主題之一是在Java源代碼文件的第一行上放置“ shebang ”的功能,該文件應按此JEP描述的方式運行(例如,在Groovy中使用,在Linux / Unix shell)。 在撰寫本文時,JEP草案目前在“ Shebang”文件的標題下解決了該主題,并指出:
使用源文件模式調用Java啟動程序的“ shebang”文件通常以以下內容開頭:
#!/path/to/java --source
如果文件開頭為,則允許在源文件模式下使用此類文件
#! 在編譯文件的其余部分之前,將刪除第一行直到(但不包括)第一行的內容。 …當文件以 #! ,則保留第一行末尾的換行符,以便任何錯誤消息中的行號保持不變。
與該JEP草案相關的第二個有趣的討論點是問題,即它是否與JDK 9引入的jshell產生關系。 正如Brian Goetz在 compiler-dev郵件列表上的消息中所指出的那樣 ,“很自然(并且很普遍)”期望使用jshell而不是增強的java啟動器來運行這些類似于shell的單一源Java源文件。 。 Goetz 在該消息中解釋了為什么這并不像最初看起來的那樣好,因為jshell是為“良好的交互體驗”而不是作為“批處理運行程序”而明確設計的。 JEP草案的當前版本在“ 替代方案”部分中對此進行了說明,其中指出:
我們可以將“一次性運行”任務委托給
jshell工具。 雖然這乍看起來似乎很明顯,但這在設計中顯然是非目標
jshell 。 的
jshell工具被設計為交互式外殼,許多設計決策都傾向于提供更好的交互式體驗。 成為批處理運行者的額外限制會加重交互體驗。
盡管目前這只是JEP的草案 ,但我很喜歡這個想法,并認為將其添加到JDK的未來版本中將是一個很好的次要功能。 此功能將使Java新手可以更輕松地測試基本Java示例,并且不會給Java新手帶來不必要的額外步驟,而這是他或她不習慣與某些其他(通常是動態類型的)編程語言一起使用的步驟。 對于經驗豐富的Java開發人員來說也很方便。 我仍然發現自己寫了一些Java小片段來學習某些東西的工作原理(并向其他人演示它的工作原理),而該草案建議的JDK增強功能將使其變得更容易一些,尤其是當Java源文件編譯成多個.class文件時。 這是我在Groovy開發中喜歡的功能之一,并且很高興擁有用于簡單Java開發的功能。
翻譯自: https://www.javacodegeeks.com/2018/02/executing-single-java-source-files-one-command.html
運行單個源文件
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的运行单个源文件_使用一个命令执行单个Java源文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kodi怎么设置中文(kodi怎么设置中
- 下一篇: apache isis_使用Apache