Java 8: почему статический блок не выполняется (если я не использую метод main ())? - PullRequest
1 голос
/ 27 сентября 2019

Ниже приведена программа:

public class Statico {
    static{
        System.out.println("Rarara");
        System.exit(0);
    }
}

Когда я компилирую и запускаю программу, используя Java 6 :

C:\D>"c:\Program Files\Java\jdk1.6.0_19\bin\java" Statico
Rarara //Output is displayed

Это не говорит о том, что требуется Main () (т.е. исключение в потоке "main" java.lang.NoSuchMethodError: main) не генерируется, так как мы используем System.exit (0)

Но когда я выполняю приведенный выше код в Java8;мы всегда получаем исключение:

C:\D>"c:\Program Files\Java\jdk1.8.0_141\bin\java.exe" Statico
Error: Main method not found in class Statico, please define the main method as:
   public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

В чем причина этого?

Можем ли мы достичь функциональности типа Java 6, как показано выше и в Java 8?

Если да, то как?

...