Java Class.forName failing



我似乎不能让Class.forName(String)不扔ClassNotFoundException。例如,这段代码是直接从Sun的网站上摘取的代码的简短副本,它会抛出异常。

import java.lang.reflect.*;
class A {}
public class Test {
   public static void main(String args[])
   {
      try {
         Class cls = Class.forName("A");
      }
      catch (Throwable e) {
         System.err.println(e);
      }
   }
}

生产

. lang。ClassNotFoundException:

我在Windows XP SP3上使用Eclipse 1.3.2.20110218-0812。有人知道我错过了什么吗?

您必须在Test类的包名前面加上A,作为一个例子,如果Test在" Test "包中,您需要以下内容:

Class cls = Class.forName("test.A");

您的代码片段对我来说很好。

下面是ideone.com的演示:http://ideone.com/IBjKl

注意,您需要提供类的完全限定名,以便类装入器找到它。例如,如果A实际上在某个包中,则需要执行forName("your.package.A")以使其工作。

(注意导入是不必要的)

Class.forName函数需要完全指定的类路径。所以即使你已经从java.util导入了ArrayList,你也应该使用:

Class myClass = Class.forName("java.util.ArrayList");

要做到这一点,你需要在你的类路径

中有一个名为"a "的类

相关内容

  • 没有找到相关文章

最新更新