当前位置: 首页 > 知识库问答 >
问题:

Class.for名称()抛出ClassNotFoundExcture

徐智渊
2023-03-14

Java程序的一个思路如下:

package typeinfo;
import static util.Print.*;

class Candy {
 static { print("Loading Candy"); }
}

class Gum {
 static { print("Loading Gum"); }
}

class Cookie {
 static { print("Loading Cookie"); }
}

public class SweetShop {
 public static void main(String[] args) {  
   print("inside main");
   new Candy();
   print("After creating Candy");
   try {
     Class.forName("Gum");
   } catch(ClassNotFoundException e) {
     print("Couldn't find Gum");
   }
   print("After Class.forName(\"Gum\")");
   new Cookie();
   print("After creating Cookie");
 }
} 

我期望输出如下:

/* Output:
inside main
Loading Candy
After creating Candy
Loading Gum
After Class.forName("Gum")
Loading Cookie
After creating Cookie
*/

但是得到

inside main
Loading Candy
After creating Candy
Couldn't find Gum
After Class.forName("Gum")
Loading Cookie
After creating Cookie

显然,try块正在抛出一个ClassNotFoundExcure,这是出乎意料的。你知道为什么代码会抛出这个而不是像预期的那样初始化Gum类吗?

共有1个答案

彭硕
2023-03-14

您的类位于包typeinfo中,因此它们的完全限定名是typeinfo。Gum类型信息。Candy类型信息。Cookie<代码>类。forName()只接受完全限定名:

参数:

className-所需类的完全限定名。

将代码更改为:

try {
  Class.forName("typeinfo.Gum");
} catch(ClassNotFoundException e) {
  print("Couldn't find Gum");
}
 类似资料:
  • 我创建了一个基本的.NET framework MVC web应用程序,并添加了使用Cloud Watch logs SDK向AWS Cloud Watch logs发送日志的逻辑,它在LocalSystem/LocalHost中运行良好,但当我对映像进行对接时,就开始出现异常。请指导我解决这个问题。 Amazon.Runtime.AmazonServiceException:“引发了状态为Nam

  • 我的应用程序中堆满了spring boot,它不想运行模式或表,只想连接到我的数据库SQL Server和查询信息,所以我在文件application.properties中禁用了这一行 但是不工作,我不知道什么是错的,已经配置了我的数据源,提前谢谢,我希望有人能帮助我,对不起我的英语很差。 我使用的是spring boot 2.2.6,我的DataSourceConfiguration代码 这里

  • 在我的MVC4应用程序中进行了重大重构之后,Razor在调试视图时显示了此错误: 名称“model”在当前上下文中不存在。 这是一段令人反感的代码: 我知道的用法是正确的。 为什么会出现这种情况?我该怎么修好它?

  • 我已经构建了一个小程序(来自JApplet),它使用了其他几个jar文件。我已经签署了包含主类的jar,并包含了我需要的所有jar(我认为)。但是,无论我尝试什么,我总是会得到“java.lang.ClassNotFoundException: newpost”,其中“newpost”是我签名的jar中的主类。为此,我使用了以下html: JAR和html都位于服务器上的同一文件夹中。我尝试了几种

  • 这是可能的在Java抛出任何异常,即使它是刚刚宣布抛出的时刻,下面的例子: 请分享你对这种方法的好坏的看法。 同样的问题是扩展RuntimeException(这不是抽象的)并立即扔掉它。

  • 问题内容: 我使用cxfreeze从planrequest.py创建Windows可执行文件。看来工作正常,但是当我运行exe文件时,我得到了 在)要使用此修复程序的python状态中未定义名称出口。但是,我使用import sys。该代码可以作为python脚本正常运行(例如,在编译为可执行文件之前,我对命令行参数进行了广泛测试。) 问题答案: 导入sys不足以在全球范围内实现。 你要么要做 要