我正在尝试运行 Java 应用程序,但收到此错误:
java.lang.ClassNotFoundException:
冒号后面是缺少的类的位置。但是,我知道该位置不存在,因为该类位于其他地方。我怎样才能更新该类的路径?和类路径有关系吗?
类路径是从中加载类的位置的列表。
这些“位置”可以是目录,也可以是 jar 文件。
对于目录,JVM 将遵循预期的模式来加载类。如果我有目录C:/myproject/课程在我的类路径中,我尝试加载一个类com.mycompany.Foo,它将在类目录下查找名为的目录com,然后在该目录下有一个名为我的公司,最后它会寻找一个名为Foo.class在该目录中。
在第二个实例中,对于 jar 文件,它将在 jar 文件中搜索该类。 jar 文件实际上只是像上面这样的目录的压缩集合。如果解压一个 jar 文件,您将得到一堆遵循上述模式的目录和类文件。
因此,当 JVM 尝试加载类定义时,它会从头到尾遍历类路径来查找类的定义。例如,在类路径中:
C:/myproject/classes;C:/myproject/lib/stuff.jar;C:/myproject/lib/otherstuff.jar
JVM 将尝试在目录中查找classes首先,然后在东西.jar最后在其他东西.jar.
当您收到 ClassNotFoundException 时,这意味着 JVM 已遍历整个类路径,但没有找到您尝试引用的类。正如 Java 世界中常见的那样,解决方案是检查类路径。
您可以通过以下命令在命令行上定义类路径java -cp然后是你的类路径。在 Eclipse 等 IDE 中,您将有一个菜单选项来指定您的类路径。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)