gpt4 book ai didi

java - Java 中的优先级类加载器

转载 作者:行者123 更新时间:2023-12-01 13:43:05 36 4
gpt4 key购买 nike

我想实现 PriorityClassLoader ,它可以执行以下操作:

  • 它接受默认的 ClassLoader 实例作为构造函数参数
  • 它有 addURL 方法,其工作方式类似于 URLClassLoader 中的 addURL,但它为每个新 URL 设置优先级。

当应该加载类时,加载器首先会尝试使用默认类加载器加载它,如果没有,则根据优先级从提供的 URL 加载。有现成的解决方案吗?

PS - 我原来的问题如下 - 我想将 URL 添加到系统类加载器,但它开始在系统类加载器和远程 JAR 中的重复类上失败。

最佳答案

我无意中发现了这个有趣的库,名为 JCL ,我是这样做的:

JarClassLoader jcl = new JarClassLoader();
jcl.add(new URL("hive://" + pageURL.getHost() + ":" + pageURL.getPort() + "/" + pageURL.getApplicationName() + "/origJar.jar"));

jcl.getSystemLoader().setOrder(1);
jcl.getThreadLoader().setOrder(2);
jcl.getCurrentLoader().setOrder(3);
jcl.getParentLoader().setOrder(4);
jcl.getLocalLoader().setOrder(5);

Thread.currentThread().setContextClassLoader(jcl);

关于java - Java 中的优先级类加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20545812/

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