这需要你用ClassLoader来load class吗?你把classpath设置好不就行了

解决方案 »

  1.   

    你是说用命令行参数设置classpath吧,但是这样的话classpath就固定了,欲加载的类就只能放在特定的目录下。实际上我是把我的程序生成了一个应用程序,我希望他放在任何目录中都是可用的。所以最好是有办法自动获得当前运行目录,然后把欲加载的类与主程序放在同一个目录下就能够找到。或者,如果可以随时设置整个JVM的classpath,适用于所有的程序就更好了,这样每当我欲加载一个新模块时,只要在jVM的classpath设置中增加一个目录就应该可以了吧,只是我不知道有没有这样的方法,所以还请各位大侠赐教:)
      

  2.   

    用java.net.URLClassLoader
    File jarFile = new File("xxxx.jar");
    URL[] urls = {jarFile.toURL()};
    URLClassLoader classLoader = new URLClassLoader(urls);
    Class cls = classLoader.loadClass("xxx.xxxx");
    ...