8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何解决 ClassNotFoundException?

avishekdr 1月前

234 0

我正在尝试运行 Java 应用程序,但出现此错误:java.lang.ClassNotFoundException:冒号后是缺失类的位置。但是,我知道该位置...

我正在尝试运行 Java 应用程序,但出现此错误:

java.lang.ClassNotFoundException:

冒号后面是缺失类的位置。但是,我知道该位置不存在,因为该类位于其他地方。我该如何更新该类的路径?这与类路径有关吗?

帖子版权声明 1、本帖标题:如何解决 ClassNotFoundException?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由avishekdr在本站《macos》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 抱歉,我回答这个问题晚了,但我会用最简单的外行语言向你解释。当你输入“javac编译器检查程序并发现错误,首先确保您的程序与您在命令提示符中执行的目录相同。然后它会创建程序的类文件。例如,如果我的程序名称是 Test.java,那么创建的类文件应该是 Test.class,它将在下一行执行。有时 java 会为您的 .class 采用其他名称,使用该名称,然后您就会得到输出。

  • 实际上...我猜如果你的导入隐藏了正确的类,并且你的编译和运行时类路径不同,那么它可以修复 ClassNotFoundException。但你必须犯下许多不同的错误才能实现这一点。

  • 那么它们就不是未使用过的。它们被用错了地方!例如,如果您导入一个与默认导入的其他类同名的类(例如,当前包或 java.lang 中的类),则删除导入会更改程序,并可能修复编译时甚至运行时问题。但不是 ClassNotFoundException ... 这正是这个问题所要解决的问题。

  • @StephenC 我知道我看到了什么。未使用的导入在运行时可能没有影响,但编译时呢?

  • 删除未使用的导入不会修复 ClassNotFoundException。未使用的导入在运行时没有任何影响。您一定还做了其他事情……这样就解决了问题。

  • 我删除了一些未使用的导入,这解决了我的问题。如果你从不寻找某个类,那么你就不可能找不到它。

  • 运行 mvn package 命令后,传递包名称是键和类名以及 jar 文件。

    通过按照下面修改 Jar 和包名称来运行以下命令。

    java -cp target\Test-1.0-SNAPSHOT.jar com.compname.Test

  • 就我而言,我使用的是 Spring Tool Suite 4,并且我的问题通过以下两个步骤得到解决:

    1. 右键单击项目 --> 以...身份运行 --> Maven 清理。
    2. 右键单击项目 --> 运行方式 --> Maven 安装。

    然后我可以使用以下命令运行该项目:Run As --> Spring Boot App。

    希望它能帮助到别人:)

  • 检查 .jar 或 .class 文件权限。我在项目库中有一个具有权限的 jar -rw-r--r-- ,我将其更改为 -rw-rw-r-- 在 Linux 上使用:

    chmod 664 <.jar>
    

    一个库正在调用 ClassLoader.loadClass ,当使用错误的权限加载 jar 中的类时引发错误。

  • 引用 11

    我在终端运行了 Java 代码并添加了类路径,解决方案如下:
    > java -cp <JAR file> <JAVA Class file>
    例如, c:\code\prototype-app\target\classes>java -cp ..\prototype-app-1.0-SNAPSHOT.jar com_stree.app.DetectLabels

    我的运行环境:
    操作系统:Windows 10
    Java:15.0.1
    Maven:3.8.1

  • 如果您已将项目移至新机器或从 git 导入,请尝试此操作。

    1. 右键单击类>运行方式>运行配置
    2. 删除主类引用
    3. 申请 > 关闭
    4. 现在再次右键单击类>作为 java 应用程序运行。

    它对我有用。

  • 将 Visual Studio Code 中的“Java 语言支持”插件从版本 0.66.0 升级到 0.67.0 后,我开始遇到这个问题。

    降级后我就可以运行相同的代码而不会出现任何问题。

  • 在我的情况下,抛出的类未找到异常具有与 SSL 证书相关的属性。关闭 Eclipse 并以“以管理员身份运行”打开,然后问题得到解决。由于 Eclipse 存在与权限相关的问题,因此它会抛出此类异常。

  • 如果你添加了多个 (第三方)库并扩展了应用程序

    那么它可能就会发生。

    为此,您必须设置 multiDexEnabled true 并替换您的扩展 Application MultiDexApplication .

    它将会得到解决。

  • 我尝试使用 Process 类从 C# 代码运行 .jar。java 代码在 eclipse 中成功运行,但在 C# visual studio 中却无法运行,即使直接单击 jar 文件,它总是会因 ClassNotFoundException: 异常而停止。我的解决方案是将 java 程序导出为 \'可运行 JAR 文件\',而不是 \'JAR 文件\'。希望它能对某些人有所帮助。

  • 值得注意的是,Java 有时会对引起问题的类撒谎。

    如果 java 尝试加载依赖于类 B 的类 A,并且无法加载类 B,则会出现此错误。

    在某些情况下,java 会报告无法加载类 A,但问题出在类 B。

    回想起来,上次发生这种情况是当类 A 包含静态字段或加载类 B 的静态初始化程序时。

    因此,在检查您的类路径是否正确后(我实际上在启动时转储了完整的类路径),我对类 A 进行了二进制切割。

    我的意思是,我删除了 A 中的一半代码。

    如果仍然失败,我会删除另一半,依此类推,直到问题消失(希望消失)。

    1. p0

    2. p1

  • 我也遇到了这个问题,并尝试了所有其他解决方案。我的 HTML 文件夹中没有 .class 文件,只有 .java 文件。一旦我添加了 .class 文件,程序就可以正常工作了。

  • 转到顶部并删除 import 语句(如果有),然后重新导入该类。但如果不是这种情况,请先清理,然后再构建。您使用的是 Netbeans 还是 Eclipse?

返回
作者最近主题: