Я хотел бы загрузить дополнительный класс при запуске JVM. В частности, класс должен быть загружен после загрузки всех основных библиотек (так что после rt.jar
и lib/ext
не менее).Java - загрузить дополнительный класс при запуске JVM
Класс нигде не указан. Он содержит статический блок, устанавливающий прокси-сервер JVM, который мы хотели бы использовать для всех URL-соединений.
Я пробовал опции -Xbootclasspath/a
, -Xbootclasspath/p
. С -verbose:class
добавлено к JVM_OPTS
, а выход нагрузки/открытия, созданный с помощью варианта -Xbootclasspath
, указывает, что все основные библиотеки «загружены», а мой JAR просто «открыт».
Есть ли способ принудительно загрузить класс - или еще лучше все классы в JAR - при загрузке JVM после загрузки всех базовых классов?
В вашем ответе, когда вы написали «Загрузка пользовательского класса идет в этот статический блок». вы имели в виду, что вы просто ссылаетесь на статический класс, который нужно загрузить? Или ты сделал что-нибудь еще? Поскольку через два года после того, как вы придумали это решение, нашли ли вы лучший способ сделать это? –
@AndrewBate Я изменил свое описание (что было неправильно) и код, хотя я не могу проверить его прямо сейчас, поэтому дайте мне знать, если вы это сделаете, пожалуйста. Как вы уже упоминали, я написал это давно для конкретного варианта использования, и с тех пор не повторил попытку с той же целью, поэтому у вас нет лучшей альтернативы. Я даже не знаю наверняка, что нестатический инициализатор необходим, я бы подумал, что вы могли бы просто вызвать 'loadClass' внутри конструктора ... но опять же, я надеюсь, что этот подход подходит по хорошей причине :) – KomodoDave