gpt4 book ai didi

java - 在 Java 中从线程的上下文类加载器中排除某些类?

转载 作者:太空宇宙 更新时间:2023-11-04 08:33:43 26 4
gpt4 key购买 nike

如果我有一个通过以下方式调用的程序

java -cp a.jar;b.jar;c.jar MainClass

a.jar、b.jar 和 c.jar 中的所有类都可供我程序中的所有线程使用。我希望在程序运行期间的某个时刻创建一个线程,并使用一组有限的可用类,不包括 a.jar、b.jar 和 c.jar 中的大多数类。有没有办法通过将所需的类添加到不包含系统类路径中的所有内容的类加载器,或者获取类加载器并从中删除一堆类来实现此目的?我目前知道的唯一选择是编写一个引导类并在 JVM 初始化时加载每个线程所需的类路径。我是否遗漏了一些明显的东西,或者引导是我唯一的选择?

最佳答案

您可以编写一个自定义类加载器(即扩展 URLClassLoader),它会在 loadClass(String name) 中为您不希望出现在路径上的类抛出 ClassNotFound 异常。将其设置为 contextClassLoader 并从中加载线程的 Runnable。

关于java - 在 Java 中从线程的上下文类加载器中排除某些类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6877805/

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