JVM 시작시 추가 클래스를로드하고 싶습니다. 특히, 모든 코어 라이브러리가로드 된 후에 클래스가로드되어야합니다 (따라서 rt.jar
및 lib/ext
이후).Java - JVM 시작시 추가 클래스로드
클래스는 어디에서도 참조되지 않습니다. 여기에는 모든 URL 연결에 사용할 JVM 전체 프록시를 설정하는 정적 블록이 포함되어 있습니다.
나는 -Xbootclasspath/a
, -Xbootclasspath/p
옵션을 사용해 보았습니다. -verbose:class
을 JVM_OPTS
에 추가하면 -Xbootclasspath
변형에 의해 생성 된로드/열기 출력은 내 JAR이 단순히 "열렸을 때"모든 코어 라이브러리가 "로드"되었음을 나타냅니다.
모든 코어 클래스가로드 된 후 JVM 부팅시 강제로 클래스를로드하는 방법이 있습니까?
답변에서 "맞춤 클래스로드가이 정적 블록으로 이동합니다."라고 썼습니다. 로드 될 정적 클래스를 참조한다는 것입니까? 아니면 다른 것을 했니? 이 솔루션을 생각해 낸지 2 년이 지난 지금은 더 나은 방법을 찾았습니까? –
@AndrewBate 제 설명 (코드가 잘못됨)과 코드가 수정되었지만 지금 테스트 할 수 없으므로 알려 주시면 알려주세요. 언급했듯이, 나는 오래전에 특정 유스 케이스에 대해 이것을 썼으며, 그 이후로 같은 목표를 다시 세우지 않았으므로 제안할만한 대안이 없다. 나는 비 정적 초기화가 필요하다는 것을 확실히 알지 못한다. 생성자 내에서 단순히 loadClass를 호출 할 수 있다고 생각했을 것이다.하지만 다시 한번, 나는이 접근법을 좋은 이유로 정착했다. :) – KomodoDave