这个…………必须要是.class才行的啊.

解决方案 »

  1.   

    这个.java文件只有被编译成.class才行吗?但我在jbuilder下试过,新建一个class文件,不用编译,
    就可以用getMethods()获得它的方法呀
      

  2.   

    哦,原来是这样的。
    请问:bluesmile979
    换成
    Class cl=Class.forName("f:\\test\\SelectMethod\\classes\\selectmethod\\Helloworld");
    这样好像也不行
    java.lang.ClassNotFoundException: f:\test\SelectMethod\classes\selectmethod\Helloworld该怎么办呢?
    如果是.java文件,是不是就没办法获得它提供的所有方法?请大侠赐教!
      

  3.   

    这个类是对class而言的,.java肯定是不行的。你上边那个好像是打包了,打包的处理应该用selectmethod.Helloworld
      

  4.   

    要获得Helloworld方法的类和Helloworld不在同一个目录下。
    难道要用:
     Class cl=Class.forName("f.test.SelectMethod.classes.selectmethod.Helloworld");这样也是抛出异常:
    java.lang.ClassNotFoundException: f.test.SelectMethod.classes.selectmethod.Helloworld
      

  5.   

    试试看("f:\\test\\SelectMethod\\classes\\selectmethod.Helloworld");
      

  6.   

    Class.forName()不是从文件系统中取找class文件,而是从从JVM的CLASSPATH中找class;
    所有的带有文件路径的的使用方法都是错误的,如:
    Class cl=Class.forName("f:\\test\\SelectMethod\\classes\\selectmethod\\Helloworld");正确的方法是:
    在用JAVA命令启动JAVA程序的时候,设置好CLASSPATH.如果你的CLASS文件在一个JAR文件中,你就需要将这个JAR文件设置到CLASSPATH中去,象这样:
    java -classpath jarfile.jar [classname]
    如果jarfile.jar不在当前目录下,需要指定为绝对路径。如果你的CLASS文件不是在JAR文件中,而是单独的文件,那么在设置classpath时需要将该文件所在目录设置进去,象这样:
    java -classpath c:/tmp [classname]
    [注:假设class文件在c:/tmp目录下]如果说你写的类带有包名(package),那么就要小心,这时候需要指定根包名所目录。假设你的类中包名为:test,你写的类名是:Test,那么首先在c:/tmp下建立test目录,将Test.class文件拷贝到c:/tmp/test目录下,再执行:
    java -cp c:/tmp test.Test
    这样才能找到这个类。
    以上说的是用UltraEdit或者Notepad写程序时,需要注意的。如果你用的是java的集成开发环境(如jbuilder),那么就可以省很多事,按照向导将JAR文件加入到工程的lib中,当然,不是jar文件,就直接加path就可以了。
      

  7.   

    在Class.forName中给出的不应该是类文件的物理路径,应该是
    包名.包名.类名
      

  8.   

    muymuy(muy) 
    说得很清楚了。
      

  9.   

    强烈同意Polarislee(北极星)的说法. 不然的话,你需要用ClassLoader才能去调物理路径的类文件.
      

  10.   

    谢谢各位大侠的热心帮助!(前两天学校网断了)
    如果这些类都在同一目录下,muymuy大侠的方法很适用。
    如果类在不同的目录下,而且要获得的这些类是
    动态的,好像就需要用ClassLoader了,
    但具体怎么用,我不是很清楚。
    有哪位大侠熟悉ClassLoader,可否不吝赐教!
      

  11.   

    ClassLoader非常有用.学会它,java水平可是大长一块噢.
      

  12.   

    到这里看看,有详细介绍,还有例子:
    http://www-900.cn.ibm.com/developerWorks/cn/cnedu.nsf/java-onlinecourse-bytitle/AED03F980AC3C03C48256A7600222BB5?OpenDocument