Java致命错误:无法在类路径或bootclasspath中找到包java.lang

时间:2014-06-01 21:10:12

标签: java intellij-idea compiler-errors ide

我收到此错误

  

错误:java:致命错误:无法在类路径或bootclasspath中找到包java.lang

当我尝试构建/编译任何项目时,在IntelliJ中

。这里应该说明的是NetBeans,Eclipse甚至javac命令行都可以编译,构建和执行同一个项目而不会出错。这就是为什么我怀疑问题在于IntelliJ,所有其他IDE都运行良好。

在IntelliJ中我已经:

  • 重新启动,重新安装
  • 使缓存无效/重新启动
  • 在Project JDK中删除/读取JDK
  • 在平台设置中删除/读取JDK
  • 重建/重新编译

    在Windows中我已经:

  • 已删除/重新安装的Java SDK
  • 在系统变量上删除/读取JAVA_HOME,PATH和CLASSPATH
  • 在用户变量上尝试了以上操作
  • 删除并重新安装IntelliJ IDEA

    我已经在Internet上找到了类似这样的问题,在Stack Overflow上我找到了:
    Question #1 | Question #2 | Question #3 | Question #4 | Question #5
    还有30多个网站,并尝试了每一个答案......
    Here您最后一次尝试构建/编译时可以看到我的IntelliJ项目结构

    当我收到此错误时,我正在使用Java 1.8,几个小时后,我安装了Java 1.7并且项目运行正常。也许IntelliJ不支持Java 1.8?

    无论如何,如果有人知道如何让Java 1.8与IntelliJ协同工作,那就太棒了。

  • 6 个答案:

    答案 0 :(得分:5)

    我只花了几个小时就找到了一个可能对你有用的解决方案。 IntelliJ似乎有一个错误,希望JDK与指定的目录不同。我按照以下步骤操作:

    • 打开intelliJ,点击帮助 - >显示登录资源管理器
    • 修改build-log / build-log.xml并将<priority value="info" />更改为<priority value="debug" />,您可能必须以管理员身份运行编辑器
    • 使用&#34运行编译失败:错误:java:致命错误:无法找到...&#34;
    • 打开build-log / build.log并搜索rt.jar,你应该在一个包含一组其他JRE库的块中找到它,并且指向该文件的目录应该是错误的

    在我的情况下,JDK包含在D:\ Development \ software \ jdk1.8.0_20中,而日志指向C:\ Users \ Vladimir \ Development \ software \ jdk1.8.0_20

    我通过将JRE复制到日志中预期的位置来解决问题。就像你的情况一样,这似乎只发生在JDK 1.8上。

    答案 1 :(得分:1)

    问题来自IntelliJ bug(至少在版本14中存在)。 当您的JDK目录位于用户配置文件目录下时,会发生这种情况。例如,JDK位于此目录中(对于Windows):

    C:\Users\myuser\jdk1.8.0_20

    将以IntelliJ内部配置(文件'jdk.table.xml')存储为:

    $USER_HOME$\jdk1.8.0_20

    但是您的%USER_PROFILE%环境变量可能指向其他一些(非默认)位置。然后IntelliJ将查看错误的目录。

    可能的解决方法: 将JDK安装在您的个人资料目录之外的不同目录。赞:

    C:\Programs\jdk1.8.0_20

    然后注册此JDK以用于IntelliJ项目设置。

    答案 2 :(得分:1)

    在使用Gradle导入Java项目后,我在Arch Linux Linux 4.16.13上使用IntelliJ 2018.1.4遇到了这个问题。我确保在&#34;项目设置&#34;中有一个注册的JDK。 - &GT; &#34;项目&#34;但是IntelliJ无法从JDK中找到类,例如java.util.List

    解决方案是在与现有JDK(在我的情况下为/usr/lib/jvm/java-8-openjdk)相同的路径中添加新的JDK条目。这将导致IntelliJ将jre下的文件放到类路径上,而使用旧的JDK条目,只有lib下的文件位于类路径上。

    答案 3 :(得分:0)

    如果在netbeans中导入项目时出现此问题,则尝试创建一个新项目,然后检查新创建项目的属性,并将这些属性与您在我的情况下导入的项目相匹配,目标是android之间的差异包版本。

    答案 4 :(得分:0)

    根据我的理解,调试几个小时,问题在于安装jdk1.8的位置(/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home),而不是在System /图书馆)。

    因此,必须采取以下措施来修复 intellij 1.对于现有项目,右键单击并选择模块设置,然后选择SDK并将1.8作为版本添加。 2.使用终端转到〜/ Library / Preferences // options /。删除jdk.table.xml中旧的JDK特定行。更新project.default.xml中的默认版本

    在intellij和build中清理你的项目。它应该使用新的jdk和sync。

    答案 5 :(得分:0)

    有同样的问题。如果其他答案很复杂,则可以简单地解决其他问题。

    转到文件->项目结构 在Project SDK下,选择new并添加另一个JDK。

    在我的情况下,默认使用的版本是1.8,即版本181。我选择了最近下载的1.8.0_192。

    应用后,项目将自动加载。 当我重新运行测试时,它可以正常工作!