網頁

2021/11/6

Java 11 直接執行java原始檔

Java 11 引入了JEP 330: Launch Single-File Source-Code Programs功能,可以直接以java命令執行原始碼.java程式。


Java是編譯語言,在以前都必須先以javac命令將原始碼.java檔編譯成.class檔後才能以java命令執行。而Java 11開始可以直接以java命令執行原始碼.java程式。

例如在任意檔案路徑下新增一個檔案名稱為HelloWorld.java並撰寫內容如下存檔。

HelloWorld.java

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello World");
    }

}

接著在HelloWorld.java所在目錄以命令列執行java HelloWorld.java(後面必須加上.java)可正常執行並印出結果。

$ java HelloWorld.java
Hello World

雖然看上去是直接執行原始碼檔,但實際上仍是先編譯並把編譯檔存入記憶體,然後由Class Loader載入後執行。


而在Java 11之前若未先編譯則是出現找不到class的錯誤訊息。

$ java HelloWorld
Error: Could not find or load main class HelloWorld
Caused by: java.lang.ClassNotFoundException: HelloWorld


沒有留言:

張貼留言