首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java -在JVM启动时加载附加类

Java -在JVM启动时加载附加类
EN

Stack Overflow用户
提问于 2013-05-10 15:19:39
回答 1查看 1.7K关注 0票数 1

我想在JVM启动时加载一个额外的类。具体地说,类应该在加载所有核心库之后加载(至少在rt.jarlib/ext之后)。

该类在任何地方都没有被引用。它包含一个设置JVM范围的代理的静态块,我们希望所有URL连接都使用该代理。

我已经尝试过-Xbootclasspath/a-Xbootclasspath/p选项。在将-verbose:class添加到JVM_OPTS之后,由-Xbootclasspath变体创建的加载/打开输出表明所有核心库都已“加载”,而我的JAR只是“打开”。

有没有一种方法可以在所有核心类都加载之后,在JVM启动时强制加载一个类--或者更好的是JAR中的所有类?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-13 18:53:06

经过研究,我找不到比定制类加载器更好的方法了。

这是我写的。它固有地对所有类加载方法使用默认的类加载器,但提供对非静态初始化器的访问,在该初始化器中可以进行自定义类加载/引用。

代码语言:javascript
复制
public class CustomClassLoader extends ClassLoader {

    {
        // Custom class loading goes in this non-static initializer.
        loadClass("java.org.myorganisation.package.MyClass");
    }

    public CustomClassLoader() {
        super(CustomClassLoader.class.getClassLoader());
    }

    public CustomClassLoader(ClassLoader parent) {
        super(parent);
    }
}

通过定义系统属性-Djava.system.class.loader=com.anon.mypackage.CustomClassLoader来指定自定义类加载器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16477131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档