Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以在应用程序启动时选择类路径jar?_Java_Classpath - Fatal编程技术网

Java 是否可以在应用程序启动时选择类路径jar?

Java 是否可以在应用程序启动时选择类路径jar?,java,classpath,Java,Classpath,即: 注意:是的,还有其他加载方式、工厂等。但如果可以做到这一点,则可能会在应用程序启动时动态选择整个特定于平台的包实现。请记住,一旦加载一个类,它将使用自己的类加载器加载它需要的其他类。因此,您所需要做的就是让应用程序中的第一个类计算出动态类路径,并用您想要的条目列表构造一个URLClassLoader。然后使用该类加载器加载真正的主类,您就完成了:动态类路径将用于应用程序的其余部分,或者用于通过真正的主类加载的任何类,在任何情况下。请记住,一旦加载了一个类,它将使用自己的类加载器加载它需要的

即:


注意:是的,还有其他加载方式、工厂等。但如果可以做到这一点,则可能会在应用程序启动时动态选择整个特定于平台的包实现。

请记住,一旦加载一个类,它将使用自己的类加载器加载它需要的其他类。因此,您所需要做的就是让应用程序中的第一个类计算出动态类路径,并用您想要的条目列表构造一个URLClassLoader。然后使用该类加载器加载真正的主类,您就完成了:动态类路径将用于应用程序的其余部分,或者用于通过真正的主类加载的任何类,在任何情况下。

请记住,一旦加载了一个类,它将使用自己的类加载器加载它需要的其他类。因此,您所需要做的就是让应用程序中的第一个类计算出动态类路径,并用您想要的条目列表构造一个URLClassLoader。然后使用该类加载器加载真正的主类,您就完成了:动态类路径将用于应用程序的其余部分,或者在任何情况下用于通过真正的主类加载的任何类

main_or_init()
{
    if(some platform specific condition) {
        addToClassPath("jarFileA.jar");
    } else {
        addToClassPath("JarFileB.jar");
    }

    // which implementation selected above 
    ClassFromJarFile firstInstance = new ClassFromJarFile();
}