gpt4 book ai didi

java - Constructor.newInstance 中的自定义类加载器

转载 作者:行者123 更新时间:2023-12-01 16:09:53 26 4
gpt4 key购买 nike

我通过 bean 脚本框架使用 rhino 在我的 java 进程中创建和配置对象。脚本中使用的一些类需要动态加载,因为它们并不总是位于标准类路径上。

为了加载这些类,我使用自定义类加载器初始化脚本框架的上下文工厂,该加载器从辅助目录加载这些类。这效果很好。

问题是其中一些类在其构造函数中使用其他类,这些类也必须从此辅助目录加载。查看源代码,我发现 javascript 引擎只是调用 Constructor.newInstance。

我如何知道 newInstance 调用使用哪个类加载器,以及我可以注入(inject)自己的类加载器,以便我可以手动加载标准类加载器不知道如何加载的类。

最佳答案

尝试将类加载器的父类加载器设置为应用程序类加载器。

ClassLoader myLoader = new ClassLoader(getClass().getClassLoader()) { 
... your code loading from custom directory ...
}

从加载器加载的类将使用您的加载器来查找其他类,因此您的加载器需要提供这些类(通过委托(delegate)给父级)

关于java - Constructor.newInstance 中的自定义类加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1651456/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com