【问题标题】:Intellij suddenly throwing ClassNotFoundExceptionIntellij 突然抛出 ClassNotFoundException
【发布时间】:2013-05-27 07:23:58
【问题描述】:

我在这里完全不知所措。我有一个名为 LenseProject 的外部硬盘驱动器项目。在 LenseProject 中,我有 .idealibNativesSRC 文件夹。我还有许多文本文件可供阅读。

当我昨晚下班时,一切都很好。今天早上来,我遇到了:

Exception in thread "main" java.lang.ClassNotFoundException: QuadTest
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:188)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:113) 

QuadTest 是主类。

我认为可能有用的信息:

  • 如果我注释掉导入,我会收到相应的错误消息。 (找不到符号等)。

  • 我有 9 个依赖项,位于已设置的 lib\lwjgl-2.9.0\jar 中 在项目结构 -> 库中。

  • 该模块将 LenseProject 作为内容根,并将 SRC 作为 源文件夹。

  • 语言等级为7.0

  • 我在项目结构 -> 模块中设置了要导出的依赖项 -> 依赖关系。

  • 在编译器输出中,我将其设置为使用模块编译输出路径, 因为继承项目编译输出路径给了我“无法启动 编译:未为模块指定输出路径 “镜头计划”。在配置项目中指定输出路径。

  • 我有 VM 选项 -Djava.library.path=Natives

  • 我可以通过命令提示符编译运行程序没有问题。

  • 我今天早上启动它时缺少配置选项。我不得不再次设置 SDK 和库。

【问题讨论】:

  • 需要先下载依赖,然后添加到项目的classpath中。
  • 我不确定你的意思。我在 lib 文件夹中有依赖项。
  • 您是否尝试过使缓存无效。经常帮助解决突然的错误。文件-> 使缓存无效
  • 您找到解决此问题的方法了吗?我也面临同样的问题,但三年后:)
  • 2020 年:如果使用 Gradle,一个潜在的补救措施是编辑您的 build.gradle 并重建它

标签: java compiler-errors intellij-idea


【解决方案1】:

检查你的 mainClassName

mainClassName = "com.xxx.xxxApplicationKt"

【讨论】:

    【解决方案2】:

    我有类似的问题。运行 tomcat 时未找到新的依赖项。问题是它没有被部署到/WEB-INF/lib。在桌子上敲了半天后,我发现这个YouTube video 修复了它。

    基本上我需要从模块设置-> 工件-> MyWar-> 输出布局选项卡中添加依赖项。在可用元素下打开您的项目文件夹。如果那里列出了 Maven 依赖项,请选择它们。然后右键->放入/WEB-INF/lib

    【讨论】:

      【解决方案3】:

      文件 -> 项目结构 -> 项目。 将项目语言级别从“SDK 默认”更改为您正在使用的实际版本。

      这很奇怪,但解决了问题。

      【讨论】:

        【解决方案4】:

        我的问题是,所有这些重命名项目结构的过程,我的 Maven 依赖项都没有实现。

        更改pom文件中的maven依赖后,它工作了。

        【讨论】:

          【解决方案5】:

          在我的例子中,问题在于我重用了“out”目录来进行程序输出。 我通过将输出重定向到另一个文件夹来解决它。

          【讨论】:

            【解决方案6】:

            打开你的 Idea File --> Project Structure --> Modules ,然后选择有问题的模块,在“Paths”选项卡中选择“Use module compile output path”。

            【讨论】:

              【解决方案7】:

              我知道它有点旧,但对我来说,运行-->编辑配置-->在应用程序中选择了你的主代码文件-->右侧面板上的配置。选中“使用替代 JRE:”并选择名为 jre(.../Java/jdk.x.x.x_xx/jre) 的 JDK 文件夹。申请并确定。我对 intelliJ 真的很陌生,但这解决了我的问题,希望它对某人有所帮助。

              【讨论】:

                【解决方案8】:

                我建议确认你的Run Configuration如下:

                工具栏:Run->Edit Configurations...,确认您的配置正确。

                希望对你有帮助。

                【讨论】:

                  【解决方案9】:

                  尝试转到Preferences -> Compiler 并选择 Eclipse,而不是使用 javac。

                  【讨论】:

                  • 那么你为什么要告诉 Intellij 选择 Eclipse 编译器?很有可能,它们不会被安装。甚至可以选择它们吗?
                  • @StephenC 是的,这是一个选项。看看吧。
                  • OK ...所以假设安装了 Eclipse 编译器(有点牵强!)...>>为什么
                  【解决方案10】:

                  我在编写单元测试时遇到了类似的问题。一切都可以在命令行运行,但在 IntelliJ 中失败了。 IntelliJ 会成功编译,但不会运行测试。

                  然后我在 IntelliJ 的博客上看到了一篇帖子:http://blog.jetbrains.com/idea/2014/03/intellij-idea-13-1-released/

                  anet 说:

                  2014 年 3 月 21 日下午 12:20

                  您可以删除现有的 junit 依赖项,并允许 IDEA 从头开始​​为您添加 JUnit 库。

                  新的 junit 不再捆绑 hamcrest,但在运行时仍然依赖它。

                  谢谢, 安娜

                  我从我的项目设置中删除了 JUnit,然后让 IntelliJ 重新添加它。然后一切正常。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2019-12-31
                    • 2021-07-02
                    • 2016-07-15
                    • 1970-01-01
                    • 2022-01-14
                    相关资源
                    最近更新 更多