Java 如何为类加载器加载任意选择的JAR?

Java 如何为类加载器加载任意选择的JAR?,java,Java,我希望能够加载不同版本的JAR文件,代表客户机API,基于我正在谈论的服务器版本。不幸的是,每个版本的服务器都需要不同的客户端API。有没有办法创建一个类加载器,根据指定的类路径查找类文件?换句话说,我想告诉类加载器搜索类文件的位置顺序。如果我理解正确,您可能希望自定义类加载器根据某些配置在不同的位置查找。例如,在一种情况下,它可能会在/foo中查找,在另一种情况下,它可能会先在/foo中查找,然后在/bar中查找。如果这是正确的,事实上也没那么难。查看URLClassLoader。您可以向类加

我希望能够加载不同版本的JAR文件,代表客户机API,基于我正在谈论的服务器版本。不幸的是,每个版本的服务器都需要不同的客户端API。有没有办法创建一个类加载器,根据指定的类路径查找类文件?换句话说,我想告诉类加载器搜索类文件的位置顺序。

如果我理解正确,您可能希望自定义类加载器根据某些配置在不同的位置查找。例如,在一种情况下,它可能会在/foo中查找,在另一种情况下,它可能会先在/foo中查找,然后在/bar中查找。如果这是正确的,事实上也没那么难。查看URLClassLoader。您可以向类加载器指定哪些URL可以是本地目录或文件,并且在第一次在指定的父类加载器中搜索后,将按照为类和资源指定的顺序搜索URL

关键是父类加载器无法知道您不希望搜索的路径,因此您必须手动执行一些类路径配置,而不是让JVM处理