现在有一个java class文件路径:
c:\a\b\c\D.class
想请问一下,只根据以上信息,怎么的出D.class对应的类名称。
即是a.b.c.D
还是b.c.D
还是c.D
还是D
?多谢指点?

解决方案 »

  1.   

    我想得到class的name,然后就可以生成这个class的实例,得到对应的Object,然后再调用这个类的方法,做一些事情。
     believefym,请问你知道怎么做吗?
    生成class的实例,我看了一下jdk的文档,似乎必须知道这个类的全名称,就是带package的才行啊。
      

  2.   

    哈,把.class放到记事本里看看,比如说,有一个类jzt.class是,用记事本打开,是这样的:漱壕   1 7
           
     ! " # $
     % &
     ! ' (
     ! ) * <init> ()V Code LineNumberTable LocalVariableTable this Ljavaapplication2/jzt; main ([Ljava/lang/String;)V j I i agrs [Ljava/lang/String; n 
    SourceFile jzt.java    
     +  , -   .  / 0 %4d java/lang/Object 1  2 3  4 5    6 0 javaapplication2/jzt java/lang/System out Ljava/io/PrintStream; java/io/PrintStream print (Ljava/lang/String;)V java/lang/Integer valueOf (I)Ljava/lang/Integer; printf <(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; println !            
         3     *        
                                    }<= u>dh   ???> !  Yh` S W???d> !  Yh` S W??岵   
    ??尡       2        
      #  *  B  H  P  h  n  v  | !    >        % #    L "     w      }      z         
    琢磨一下,它的包名是个啥?
      

  3.   

    看你的程序中的package 语句中所写的了。
      

  4.   

    看来是没有办法直接得到了?你们说的这方法我认为都不太好。
     trumplet(检查)  说看class,这么麻烦,我随便怎么看都行,反编译更快
     f_acme(沧海一声笑) 也一样,程序都看到了,还用这么麻烦吗。
    我的前提是只知道  c:\a\b\c\D.class  这样一个字符串信息。
    看来是不行了。得想其他的办法,或者一个一个的
    Class.forName(a.b.c.D);
    Class.forName(b.c.D);
    Class.forName(c.D);
    Class.forName(D);???
     
      

  5.   

    看class其实是最省事的方法。在记事本里“编辑”->“查找”已知的类名,必定能找的到的。