2012-02-24 28 views
1

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

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

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

注意:是可以做到的,如果这装货,工厂等,但其他途径,那么整个平台特定的软件包实施可能会动态地在应用程序启动选择。

回答

4

请记住,一旦加载了一个类,它就会使用它自己的ClassLoader加载它所需的其他类。所以你需要做的是让应用程序中的第一个类找出动态类路径,并用你想要的条目列表构造一个URLClassLoader。然后使用那个ClassLoader加载“真实”主类,然后就完成了:动态类路径将用于应用程序的其余部分 - 或者用于通过“真实”主类加载的任何类,无论如何。

相关问题