两种方法,一,搜索Driver可能会搜索到,如果没有则用第二种方法
二寻找 *.jar必定有一个jar中含有此类。

解决方案 »

  1.   

    如果你确信再classpath的话,直接class.forname不行么
    或者直接classloader
      

  2.   

    Driver类可能在一个JAR文件里面
    也可能在一个目录里面
    如果在JAR里面,那么只要JAR文件在CLASSPATH中,并且被打包的目录结构符合包结构,那么编译器可以找到这个类,否则不能
    如果在目录里面,com所在的目录要在CLASSPATH里面,com后的子目录要符合包结构,这样编译器也可以找到这个Driver类
      

  3.   

    Driver类可能在一个JAR文件里面
    也可能在一个目录里面
    如果在JAR里面,那么只要JAR文件在CLASSPATH中,并且被打包的目录结构符合包结构,那么编译器可以找到这个类,否则不能
    如果在目录里面,com所在的目录要在CLASSPATH里面,com后的子目录要符合包结构,这样编译器也可以找到这个Driver类
      

  4.   

    to study_body(珍惜每一天):
    我就是这么做的,我搜索出来所有的*.jar,总不见得我一个一个看吧 -_-!to  copyright(笨蛋白痴神经质),xioyoo(丁鹏),JavaBoyCaoJi(老曹):
    我正是想把它从目录堆里面找出来,然后才能加到classpath中去
      

  5.   

    to  gavin1976(嘉文):
    我已经写好了~~ :)
      

  6.   

    package findclass;
    import java.util.*;
    import java.io.*;
    /**
     * <p>在本地磁盘的jar文件中寻找自己所需要的class</p>
     * <p>用法,只需要提供本地磁盘路径和所需要的class的全称(包括package等信息)</p>
     * <p>例如 org.w3c.dom.Document</p>
     * <p>Copyright: Copyright (c)Sinocomm 2002</p>
     * @author Gameboy999
     * @version 1.0
     */
    public class fclass {  public static int count = 0;
      public fclass() {
      }  private static void FindClassInLocalSystem(String path,String classname)
      {
        if(path.charAt(path.length()-1) != '\\')
          path += '\\';
        File file = new File(path);
        if(!file.exists())
        {
          System.out.println("--------------------------------------------------------");
          System.out.println("error: Path not Existed! Please Check it out!");
          System.out.println("--------------------------------------------------------");
          return;
        }
        String[] filelist = file.list();
        for(int i = 0;i< filelist.length;i++)
        {
          File temp = new File(path + filelist[i]);
          if((temp.isDirectory() && !temp.isHidden() && temp.exists()))
          {
            FindClassInLocalSystem(path + filelist[i],classname);
          }
          else
          {
            if(filelist[i].endsWith("jar"))
            {
              try
              {
                java.util.jar.JarFile jarfile = new java.util.jar.JarFile(path + filelist[i]);
                for (Enumeration e = jarfile.entries() ; e.hasMoreElements() ;)
                {
                  String name =e.nextElement().toString();
                  if(name.equals(classname))
                  {
                    System.out.println("--------------------------------------------------------");
                    System.out.println("No." + ++fclass.count);
                    System.out.println("jar package:" + path + filelist[i]);
                    System.out.println(name);
                    System.out.println("--------------------------------------------------------");
                  }
                }
              }
              catch(Exception eee)
              {
              }
            }
          }
        }  }  static public void main(String[] args) {
        if(args.length <2)
        {
          System.out.println("Usage:");
          System.out.println("the first parameter:[path to find] eg.  C:\\  d:\\Jbuilder   Tip:only '\\' can be used here");
          System.out.println("the first parameter:[class to find] eg. org.w3c.dom.Document");
          return;
        }
          String absoluteclassname = args[1].replace('.','/') + ".class";      System.out.println("Find class [" + args[1] + "] in path ["+ args[0] + "] results:");
          FindClassInLocalSystem(args[0],absoluteclassname);
          if(fclass.count == 0)
          {
            System.out.println("--------------------------------------------------------");
            System.out.println("Sorry,No such Jar!");
            System.out.println("--------------------------------------------------------");
          }
          System.out.println("Find Process Ended! Total Results:" + fclass.count);
      }
    }
      

  7.   

    我做了一个console程序,参数有两个,前面一个是目录,后面一个是要找的class全称,结果表现形式如下:(我已经编译成win32 console application)c:\>findclass.exe d:\Jbuilder7 org.w3c.dom.Document
    Find class [org.w3c.dom.Document] in path [d:\Jbuilder7] results:--------------------------------------------------------No.1jar package:d:\Jbuilder7\cocoon\lib\xerces_1_2.jarorg/w3c/dom/Document.class----------------------------------------------------------------------------------------------------------------No.2jar package:d:\Jbuilder7\extras\ant\lib\crimson.jarorg/w3c/dom/Document.class----------------------------------------------------------------------------------------------------------------No.3jar package:d:\Jbuilder7\extras\castor\lib\xerces-J_1.4.0.jarorg/w3c/dom/Document.class----------------------------------------------------------------------------------------------------------------No.4jar package:d:\Jbuilder7\extras\jakarta-tomcat-3.3.1-src\bin\crimson.jarorg/w3c/dom/Document.class----------------------------------------------------------------------------------------------------------------No.5jar package:d:\Jbuilder7\extras\jakarta-tomcat-3.3.1-src\bin\xalan.jarorg/w3c/dom/Document.class----------------------------------------------------------------------------------------------------------------No.6jar package:d:\Jbuilder7\extras\jdom\lib\xerces.jarorg/w3c/dom/Document.class----------------------------------------------------------------------------------------------------------------No.7jar package:d:\Jbuilder7\extras\xalan\xerces.jarorg/w3c/dom/Document.class----------------------------------------------------------------------------------------------------------------No.8jar package:d:\Jbuilder7\extras\xerces\xerces.jarorg/w3c/dom/Document.class----------------------------------------------------------------------------------------------------------------No.9jar package:d:\Jbuilder7\extras\BorlandXML\example\b2b\lib\parser.jarorg/w3c/dom/Document.class----------------------------------------------------------------------------------------------------------------No.10jar package:d:\Jbuilder7\extras\BorlandXML\lib\jaxp-patch.jarorg/w3c/dom/Document.class----------------------------------------------------------------------------------------------------------------No.11jar package:d:\Jbuilder7\extras\BorlandXML\lib\xalan.jarorg/w3c/dom/Document.class----------------------------------------------------------------------------------------------------------------No.12jar package:d:\Jbuilder7\extras\BorlandXML\lib\xerces.jarorg/w3c/dom/Document.class----------------------------------------------------------------------------------------------------------------No.13jar package:d:\Jbuilder7\extras\BorlandXML\lib\xml4j.jarorg/w3c/dom/Document.class----------------------------------------------------------------------------------------------------------------No.14jar package:d:\Jbuilder7\jakarta-tomcat-3.3.1\lib\container\crimson.jarorg/w3c/dom/Document.class----------------------------------------------------------------------------------------------------------------No.15jar package:d:\Jbuilder7\jakarta-tomcat-3.3.1\lib\container\xalan.jarorg/w3c/dom/Document.class----------------------------------------------------------------------------------------------------------------No.16jar package:d:\Jbuilder7\jakarta-tomcat-4.0.3\common\lib\xerces.jarorg/w3c/dom/Document.class----------------------------------------------------------------------------------------------------------------No.17jar package:d:\Jbuilder7\lib\bes\xmlrt.jarorg/w3c/dom/Document.class----------------------------------------------------------------------------------------------------------------No.18jar package:d:\Jbuilder7\lib\help.jarorg/w3c/dom/Document.class----------------------------------------------------------------------------------------------------------------No.19jar package:d:\Jbuilder7\lib\xerces.jarorg/w3c/dom/Document.class----------------------------------------------------------------------------------------------------------------No.20jar package:d:\Jbuilder7\lib\xml4j.jarorg/w3c/dom/Document.class--------------------------------------------------------Find Process Ended! Total Results:20