ClassNotFoundException

ClassNotFoundException

我找到了其他人可以找到的线程并解决了该错误;但是,所有这些都没有使用完全限定的类路径。我似乎无法让Class.forName工作,并且我正在使用完全限定的路径。

我已经测试过从CLI编译并使用ItelliJ Idea的能力。两者均因相同的错误而失败。

代码(在测试目录中):

package test;
public class Test {
  public static void main(String[] args) {
    Class cls = Class.forName("java.util.ArrayList");
  }
}


错误:


java.lang.ClassNotFoundException;必须被抓住或宣布被抛出


上面的示例不起作用。提前致谢!

最佳答案

您收到此消息是因为ClassNotFoundException是已检查的异常。这意味着不能忽略此异常。您需要用try/catch构造将其包围并提供异常处理,或者在您的方法中添加throws子句并在被调用者中对其进行处理。

编辑:
请注意,在编译过程中不会解析Class.forName()构造。编写这样的语句时,是在告诉JVM在程序执行期间查找可能尚未加载的类。 Java库是动态链接的,而不是静态链接的,这意味着它们的代码未包含在您的程序代码中,仅在需要时才加载。这就是为什么它抛出ClassNotFoundException的原因。

10-08 09:16