Java: hasJREfinishedInitialization () - как проверить, завершил ли jre загрузку / инициализацию всех основных классов? - PullRequest
0 голосов
/ 22 апреля 2010

Есть ли способ проверить, все ли загрузочные (основные) Java-классы (принадлежащие Java Runtime Environment) были загружены / инициализированы для использования в Java?

Мне нужно проверить это в редкой ситуациигде у меня есть доступ к JRE, но не к реальному приложению, поэтому я не могу просто ждать запуска и выполнения основного приложения с этого момента.

Ответы [ 2 ]

1 голос
/ 22 апреля 2010

JVM будет загружать классы «по мере необходимости», поэтому нет единой точки, в которой «все» классы в начальной загрузке пути к классам были бы загружены.

Тем не менее, начиная с версии 1.5, виртуальные машины Sun используют « совместное использование данных классов » для предварительной загрузки определенного набора классов. Я не знаю, какие классы загружаются, но подозреваю, что они ограничены классами в пакете java.lang.

Если вы просто хотите отслеживать, когда загружаются классы, используйте параметр командной строки -verbose:class при запуске JVM.

0 голосов
/ 22 апреля 2010

прочитав ваши комментарии (и случайно удалив мое печенье), все, что я могу сказать, это то, что JVMTI в значительной степени гарантированно будет гораздо лучшим выбором для всего, что вы пытаетесь сделать.

Но если вы одержимы изменением класса JRE, почему бы просто не добавить статическую логическую переменную, которая будет установлена ​​во время FileWriter инициализации?

...