如何在不使用 main 方法的情況下執行 Java 中的靜態塊?


VM 首先查詢 main 方法(至少是最新版本),然後開始執行包括靜態塊在內的程式。因此,您無法在沒有 main 方法的情況下執行靜態塊。

示例

public class Sample {
   static {
      System.out.println("Hello how are you");
   }
}

由於上述程式沒有 main 方法,如果您編譯並執行它,將會收到一條錯誤訊息。

C:\Sample>javac StaticBlockExample.java
C:\Sample>java StaticBlockExample
Error: Main method not found in class StaticBlockExample, please define the main method as: public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

如果您想執行靜態塊,則需要有 main 方法,並且該類的靜態塊在 main 方法之前執行。

示例

即時演示

public class StaticBlockExample {
   static {
      System.out.println("This is static block");
   }
   public static void main(String args[]){
      System.out.println("This is main method");
   }
}

輸出

This is static block
This is main method

更新於:2019-07-30

1K+ 瀏覽次數

開啟你的職業生涯

完成課程認證

開始行動
廣告