目录

2021-09-22-解决IntelliJ-IDEA报错ErrorCannot-determine-path-to-tools.jar-library-for-17-CProgram-FilesJavajd

解决IntelliJ IDEA报错Error:Cannot determine path to ‘tools.jar‘ library for 17 (C:\Program Files\Java\jd

解决IntelliJ IDEA报错Error:Cannot determine path to ’tools.jar’ library for 17 (C:\Program Files\Java\jdk-17

这个月,Java 17 终于发布了。这是继 Java 11 之后的又一个 LTS 版本。没事找事的笔者决定试试 Java 17。果然,意料之中的事情发生了:笔者使用 Java 17 运行一个曾经运行正常的项目时,IntelliJ IDEA 发生了如下报错:

笔者报错时的运行环境:

  • IntelliJ IDEA 2020.1.2 (Ultimate Edition)
  • JDK 17
Error:Cannot determine path to 'tools.jar' library for 17 (C:\Program Files\Java\jdk-17)

然后,和以前一样。笔者又试着运行一个非常简单的 demo 项目,果然又发生了相同的报错。而该项目以前运行正常时的环境为:

该项目以前运行正常时的环境:

  • IntelliJ IDEA 2020.1.2 (Ultimate Edition)
  • JDK 11

笔者曾经屡次在不同的操作系统上安装过多个版本的 Java,对这个报错非常熟悉。这个报错说明,当前的 IntelliJ IDEA 无法解析这个版本的 JDK,所以它尝试从它内置的环境变量 CLASSPATH 来解析 tools.jar ,结果还是失败,因此它抛出了如上的报错信息。

可以印证这一点。在下图的 Project Structure 中可以清晰的看到,笔者的 IntelliJ IDEA 2020.1.2 (Ultimate Edition) 最高支持解析 JDK 14,因此对 Java 17 无能为力。

https://i-blog.csdnimg.cn/blog_migrate/88b4e98a5589e44c3672f3c63fbec8ef.png#pic_center

https://i-blog.csdnimg.cn/blog_migrate/4a9cdd99b654ea832c572ac4146b8c89.png#pic_center

方法 1

知道原因了就好办了。一种方法是降低 JDK 的版本,使当前 IntelliJ IDEA 能够识别。

该项目以前运行正常时的环境:

  • IntelliJ IDEA 2020.1.2 (Ultimate Edition)
  • JDK 11

先安装低版本的 JDK,然后再在 IntelliJ IDEA 中的 Project Structure 中设置。如下图。不过笔者通常不喜欢这样做。

https://i-blog.csdnimg.cn/blog_migrate/4f5aef6badcd37ca67ee48a241bfe578.png#pic_center

方法 2

另一种办法是提高 IntelliJ IDEA 的版本。为此,笔者专门下载并安装了当时最新版本的 IntelliJ IDEA: IntelliJ IDEA 2021.2.2 (Ultimate Edition) 。出人意料而又在情理之中的是,笔者安装最新的 IntelliJ IDEA 时又遇到很多坑。笔者一直很想站在巨人的肩膀上,但实际上总是被巨人当做垫脚石。关于安装 IntelliJ IDEA 后打不开的问题,可见笔者的另一篇博客:

`解决 IntelliJ IDEA 安装后界面消失,再次打开后界面不动:

IntelliJ IDEA 的官网是: https://www.jetbrains.com/idea/ 。刚下载的时候,笔者还担心它也不能解析 Java 17,不过现在看来这种担心是多余的。

该项目运行正常时的环境:

  • IntelliJ IDEA 2021.2.2 (Ultimate Edition)
  • JDK 17

升级完 IntelliJ IDEA 之后,将 Project Structure 进行如下配置即可。

https://i-blog.csdnimg.cn/blog_migrate/32754978012114637cf0d816abb48ede.png#pic_center

68747470733a2f2f62:6c6f672e6373646e2e6e65742f77616e67706169626c6f672f:61727469636c652f64657461696c732f313230343037383130