例如,如果要使用DB2的JCC驱动,必须使用IBM的JDK否则会报错(编码不支持)。
但与此同时,如果要使用SUN JDK的一些功能,如加解密框架(如com.sun.crypto.provider.SunJCE),又必须使用SUN JDK,否则编译都不通过。怎样解决比较好?是不是应该从SUN的JDK中把自己所要的东西提取不出?像rowset这类东西,SUN提供了下载,其它东西应该怎样提取呢?谢谢。

解决方案 »

  1.   

    自己定义一个ClassLoader(参考JDK文档)
    用这个ClassLoader来加载IBM的JDK中的驱动程序ClassLoader loader=new MyClassLoader();
    loader.loadClass("mydriver");
      

  2.   

    ClassLoader loader1=new MyClassLoader();
    ClassLoader loader2=new MyClassLoader();
    Class c1=loader1.loadClass("java.lang.String");
    Class c2=loader2.loadClass("java.lang.String");
    System.out.println(String.class.equals(c1));//输出false,这里的String.class是由系统的ClassLoader加载的
    System.out.println(c1.equals(c2));//输出false只有当类的ClassLoader和类名都相同时,才视为同一个类。
      

  3.   

    感谢关注。现在感觉不是加载类的问题。我觉得运行程序时必须使用IBM的JDK,否则会报错。但我又想使用SUN JDK中的一些类,像上面提到的com.sun.crypto.provider.SunJCE。
      

  4.   

    把sun jdk中你需要的jar包加到你自己的lib 下,不就可了