У меня есть 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, у меня есть основной, так в основном, я ожидаю, что метод Init() был но на самом деле нет. Я подозреваю, что это потому, что StaticClass не загружен jvm, может ли кто-нибудь сказать мне
- Является ли мое заключение правильным?
- Что запускает jvm для загрузки класса?
- Как я могу заставить статический блок выполняться автоматически?
Благодаря
Вам нужно будет использовать свой StaticClass somwhere, чтобы он был загружен и инициализирован. – Kris
Похоже, [это] (http://stackoverflow.com/questions/3499214/java-static-class-initialization) может ответить на ваш вопрос. –
Возможный дубликат: http://stackoverflow.com/questions/2007666/in-what-order-do-static-initializer-blocks-in-java-run –