У меня есть 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 загружать класс?
- Как я могу заставить статический блок выполняться автоматически?
Спасибо