Когда выполняется статический блок класса?

У меня есть 2 банки, назовем их a.jar и b.jar.

b. jar зависит от a. jar.

В a.jar я определил класс, назовем его StaticClass. В StaticClass я определил статический блок, вызвав метод с именем «init»:

public class StaticClass {
  static {
    init();
  } 

  public void static init () {
    // do some initialization here
  }
}

в b.jar у меня есть main, поэтому в основном я ожидаю, что метод init () был вызван, но на самом деле нет. Я подозреваю, что это потому, что StaticClass не был загружен jvm, может кто-нибудь сказать мне

Мой вывод правильный?Что запускает jvm для загрузки класса?Как я могу выполнить статический блок автоматически?

Спасибо

Ответы на вопрос(8)

Ваш ответ на вопрос