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
沒有留言:
張貼留言