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

班forName()和ClassNotFoundException

寇涵容
2023-03-14

说我有以下两个班:

public class MyClass {
    public String getDescription() {
        return "MyClass";
    }
}

public class MyClassLoader {
    public static void main (String[] argv) throws ClassNotFoundException {
        Class.forName("MyClass");
        System.out.println("MyClass class was successfully loaded");
    }
}

如果这两个类都在默认包中,那么它运行良好,类被加载,世界也很美好。(如果我要删除类MyClass,我会得到一个ClassNotFoundException,正如预期的那样。

但是,如果它们都在一个包中(假设它是Eclipse中的一个包),并且

package myClassTestPackage;

在这两种方法中声明,当我尝试运行它时,会得到一个ClassNotFoundException

是什么导致了这个问题,我如何解决它?这是我能够在一个更大的程序中重现一个错误的最简单的方法。

共有1个答案

长孙泉
2023-03-14

那是因为我们班的学生。方法将完全限定的类名作为参数

Parameters:
    className - the fully qualified name of the desired class.

因此:

Class.forName("myClassTestPackage.MyClass");
 类似资料:
  • 我正在尝试使用以下驱动程序连接到我的postgresql数据库: 我正在使用以下代码: 我得到以下输出 驱动程序版本:PostgreSQL 9.4 JDBC4.1(build 1204) java.sql.SQLException:找不到适合jdbc的驱动程序:postgresql://localhost:5432 那么,为什么9.4驱动程序不合适呢?我知道我可以通过psql命令行登录,但我似乎无

  • 问题内容: 结果为泛型类型时如何调用?通常,我可以使用,但是在这里,我看到的唯一方法是强制转换,当使用泛型很好地键入其他所有内容时,这种方法就会出现并困扰我。 该场景是这样的: 有一个带有一个入口点主类的.jar 。它带有一个类名的选项(与此处无关)。给定的类实现。此类已加载,初始化和启动。 这是我需要的一个例子: 有什么方法可以摆脱这种情况吗? 使用SE6。 问题答案: 首先,您可能需要完整的通

  • 当我运行上述代码时,我遇到以下异常: 线程“main”java.lang.ClassNotFoundException中的异常:oracle.jdbc。OracleDriver位于java.net.URLClassLoader$1。run(URLClassLoader.java:372)位于java.net.URLClassLoader$1。run(URLClassLoader.java:361)

  • 我需要有经验的程序员对Amadeus飞行API。现在我必须将这三个API结合起来。显示搜索结果,我可以很容易地做到。我如何确定/获取旅行者选择的航班id,将其提供给航班服务API,并最终将其提供给航班预订API?这对一些人来说可能很容易,但我正在努力克服它。我很乐意得到第一手的想法。 谢谢

  • 问题内容: 我的班级应同时扩展两个班级: 怎么做? 更新 。由于这是不可能的,那么我该如何将那个AbstractBillingActivity和Preferences一起使用? Upd2 。如果我使用接口,我应该创建: 计费接口 } 偏好活动 } 抽象帐单活动 } 然后 问题答案: Java不支持多重继承。 我可以想到一些解决方法: 第一个是聚合:创建一个将这两个活动作为字段的类。 第二是使用接口

  • 问题内容: 我目前正在将H2O用于分类问题数据集。我正在python 3.6环境中对其进行测试。我注意到预测方法的结果是给出0到1之间的值(我假设这是概率)。 在我的数据集中,目标属性是数字,即值是1且值是0。我确保将类型转换为目标属性的类别,但仍得到相同的结果。 然后我修改了代码,仍然使用H2OFrame上的方法将目标列转换为因数,结果没有任何变化。 但是,当我分别将target属性中的值分别更