Java 11可以直接執行原始碼
從JDK 10開始,java可以在命令列啟動的三種方式:執行帶有public static void main(String args)方法的類;執行JAR檔案的main類,或啟動模組的main類。
從Java 11開始,增加一個新的第四種模式:啟動在原始檔中宣告的類:
java HelloWorld.java
上面一行可以直接執行啟動Java原始碼檔案,等同於:
javac -d <memory> HelloWorld.java java -cp <memory> helloWorld |
在這種直接執行原始檔模式下,執行過程如下:
- 在原始檔中找到要執行的類是第一個頂級類。它必須包含標準public static void main(String)方法的宣告 。
- 已編譯的類由自定義類載入器載入,該載入器委託給應用程式類載入器。(這意味著出現在應用程式類路徑上的類不能引用原始檔中宣告的任何類。)
- 已編譯的類在未命名的模組的上下文中執行,似乎是--add-modules=ALL-DEFAULT是有效的(除了--add-module可能已在命令列上指定的任何其他 選項。)
- 出現在命令列上的檔名後面的任何引數都以main明顯的方式傳遞給標準方法。
- 如果應用程式類路徑上有一個類,其名稱與要執行的類的名稱相同,則會出錯。
相關文章
- Java原始碼解析 ThreadPoolExecutor 執行緒池Java原始碼thread執行緒
- Java原始碼解析 - ThreadPoolExecutor 執行緒池Java原始碼thread執行緒
- Java執行緒池ThreadPoolExecutor原始碼解析Java執行緒thread原始碼
- Java執行緒池原始碼及原理Java執行緒原始碼
- java執行緒池原始碼一窺Java執行緒原始碼
- Java多執行緒之Thread原始碼分析Java執行緒thread原始碼
- 深入Java原始碼理解執行緒池原理Java原始碼執行緒
- Java排程執行緒池ScheduledThreadPoolExecutor原始碼分析Java執行緒thread原始碼
- 深入淺出Java執行緒池:原始碼篇Java執行緒原始碼
- Java併發包原始碼學習系列:執行緒池ThreadPoolExecutor原始碼解析Java原始碼執行緒thread
- Java併發包原始碼學習系列:執行緒池ScheduledThreadPoolExecutor原始碼解析Java原始碼執行緒thread
- 如何在 Java 11 下執行 RocketMQJavaMQ
- JUC(4)---java執行緒池原理及原始碼分析Java執行緒原始碼
- 執行流程原始碼分析原始碼
- 執行緒池執行模型原始碼全解析執行緒模型原始碼
- 程式,程式,執行緒的最形象理解(理解不了可以直接懟我)執行緒
- 詳解Java執行緒池的ctl(執行緒池控制狀態)【原始碼分析】Java執行緒原始碼
- 直接用 appium 可以連線真機,用 pycharm 執行指令碼時報錯 “'platformVersion' must be of type string”APPPyCharm指令碼Platform
- oracle執行java程式碼OracleJava
- 深入Mybatis原始碼——執行流程MyBatis原始碼
- 執行緒池原始碼探究執行緒原始碼
- Promise 原始碼:同步執行 resolvePromise原始碼
- 執行緒池原始碼分析執行緒原始碼
- Mybatis執行流程原始碼分析MyBatis原始碼
- Zookeeper原始碼分析(一) ----- 原始碼執行環境搭建原始碼
- Java執行緒池從使用到閱讀原始碼(3/10)Java執行緒原始碼
- 通過原始碼理解 Java 執行緒池的核心引數原始碼Java執行緒
- Java併發之執行緒池ThreadPoolExecutor原始碼分析學習Java執行緒thread原始碼
- Java多執行緒類FutureTask原始碼閱讀以及淺析Java執行緒原始碼
- JAVA併發程式設計:執行緒池ThreadPoolExecutor原始碼分析Java程式設計執行緒thread原始碼
- Java servlet執行的完整流程(圖解含原始碼分析)JavaServlet圖解原始碼
- 深入原始碼,深度解析Java 執行緒池的實現原理原始碼Java執行緒
- 自己動手實現springboot執行時執行java原始碼(執行時編譯、載入、註冊bean、呼叫)Spring BootJava原始碼編譯Bean
- 沒有運算結果,直接執行完所有程式碼
- 從原始碼的角度解析執行緒池執行原理原始碼執行緒
- Promise 原始碼:非同步執行 resolvePromise原始碼非同步
- EOS原始碼分析(2)EOS執行原始碼
- Mybatis原始碼系列 執行流程(一)MyBatis原始碼