你想调用的话就把文件拷过来;你想看看class的话就把这个jar文件解压缩了

解决方案 »

  1.   

    1.rar/zip解开jar文件就可以了。
    2.jar xvf xxx.jar
      

  2.   

    可是我要在程序里动态获得啊,所以用jar工具显然不行,think it again!
      

  3.   

    把此文件的路径加入classpath不就行了?
    然后import 过来
      

  4.   

    http://expert.csdn.net/Expert/TopicView2.asp?id=1244583&datebasetype=now用这个就行了 :)
      

  5.   

    源代码如下,其功能为直接将JAR文件中的所有目录名和文件名打印到屏幕,同时也打印META-INF/Manifest.mf文件中的所有属性//JarTest.javaimport java.util.zip.*;
    import java.util.jar.*;
    import java.util.*;public class JarTest
    {  public JarTest()
      {
      }  public static void main(String[] args) throws Exception
      {
         if (args.length !=1 )
          usage();
          
         JarFile jar = new JarFile(args[0]);     Enumeration entries = jar.entries();     //打印JAR文件中的所有目录名和文件名
         while (entries.hasMoreElements())
         {
            Object o = entries.nextElement();
            System.out.println(o);
         }     // 下面这段代码可以取得META-INF/MANIFEST.MF文件中的所有属性信息
         Manifest man = jar.getManifest();
         Attributes attrs = man.getMainAttributes();
         Set set = attrs.entrySet();
         Iterator i = set.iterator();
         while(i.hasNext())
         {
            Object o = i.next();
            // 打印属性信息
            System.out.println(o);
         }
      }  public static void usage()
      {
        System.out.println("java -cp . JarTest jarfile(or zipfile)");
      }
    }
      

  6.   

    各位大师:
        谢谢大家的热情,可我面临的问题是:位于文件系统某目录下的一个jar文件,它并不在classpath下,要想获得该jar文件里的class文件,我说的获得不仅仅是找到class这个名字就算啦,还要装载它,并获得该class文件里包和方法信息,又该如何呢?    
      

  7.   


    import java.lang.reflect.*;/**
     * 获取指定CLASS内的信息(方法,包)
     */public class ClassInfo
    {  public ClassInfo()
      {
      }  public static void main(String[] args)  throws Exception
      {
         String fullClassName ;
         if (args.length != 1)
         {
            fullClassName = "java.lang.String";
         }
         else
         {
            fullClassName = args[0];
         }     Class cls = Class.forName(fullClassName);     // (1.) 创建实例
         Object o = cls.newInstance();     // (2.) 取得package名
         Package pack = cls.getPackage();
         String packageName = pack.getName();
         System.out.println("package: " + packageName);
         System.out.println();     // (3.) 取得类名
         String className = cls.getName();
         System.out.println("class name: " + className);
         System.out.println();     // (4.) 取成员变量名
         Field [] fields = cls.getFields();
         int i;
         System.out.println("成员变量");
         for (i=0; i<fields.length; i++)
         {
            System.out.println("  " + fields[i].toString());
         }
         System.out.println();     // (5.) 取得成员方法
         Method [] methods = cls.getMethods();
         System.out.println("成员方法");
         for (i=0; i<methods.length; i++)
         {
            System.out.println("  " + methods[i].toString());
         }
      }
    }
      

  8.   

    楼上的提供的程序没错,但你所解决的问题是针对classpath下的class情况吧,问题是我面临的问题是文件系统下任意目录下jar包里的class啊,其实首先要解决的问题是这个jar在程序里怎样装载,然后才可能从jar里获的class的信息吧,我看到JarURLConnection这个class,不知道能否有帮助。再帮我想想!
      

  9.   

    你自己现在可以读这个JAR中的CLASS文件的话你可以重新写一个装载器,你可以看一下JDK中的原码就知道了
      

  10.   

    ???你总要给个路径把,要不你系统里那么多jar你要全扫瞄一遍?你想要做的到底是什么,没懂
      

  11.   

    在muymuy(muy) 的类中加入路径输入处理。1、将系统“ENVIORMENT”中的“CLASSPATH”项获得;2、将输入的路径加上指定的“JAR”文件名后与获得的“CLASSPATH”项字符串相加,得到新的地“CLASSPATH”项值;3、将新的“CLASSPATH”项字符串设成本程序运行环境的“CLASSPATH”。其他的就按muymuy(muy) 的吧!试试看吧.
      

  12.   

    想在程序里动态更改CLASSPATH的值,根本不可行!!!要知道每次运行java开始就确定了classpath,即使你重新设置也不起作用啊!
    我已知道怎样装载一个文件系统下的class,可前提是我已经知道了该class的包结构信息,然而,这事先我并不知道,我打算从程序里动态获得,所以我想装载包含class及其包结构的jar文件,可是又不知道如何装载jar文件,哎,好苦恼啊!大家一起努力吧!!@
      

  13.   

    我想不可以吧??万一没有你想装载的class怎么办?这一点也应该要考虑吧?
      

  14.   

    什么不可以呀?我要装载的class当然事先我知道在那个jar文件里罗,只是不知道这个class的包结构而已啊!
    现在大家只要考虑怎样在程序里动态加载jar文件问题就完全解决了!继续吧@