解决IntelliJ IDEA报错Error:Cannot determine path to ‘tools.jar‘ library for 17 (D:/JAVA)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 解决IntelliJ IDEA报错Error:Cannot determine path to ‘tools.jar‘ library for 17 (D:/JAVA)
前言:在拉取项目的完项目时候,准备运行报Error:Cannot determine path to 'tools.jar' library for 17 (D:/JAVA)
解决IntelliJ IDEA报错Error:Cannot determine path to 'tools.jar' library for 17 (D:/JAVA)

使用 Java 17 运行一个曾经运行正常的项目时,IntelliJ IDEA 发生了如下报错:

报错时的运行环境:

  • IntelliJ IDEA 2020.1.2 (Ultimate Edition)
  • JDK 17

 

Error:Cannot determine path to 'tools.jar' library for 17 (D:/JAVA)

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

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

 

 

方法 1

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

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

  • IntelliJ IDEA 2020.1.2 (Ultimate Edition)
  • JDK 11

先安装低版本的 JDK,然后再在 IntelliJ IDEA 中的 Project Structure 中设置。如下图。

方法 2

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

IntelliJ IDEA 的官网是:IntelliJ IDEA – the Leading Java and Kotlin IDE。刚下载的时候,还担心它也不能解析 Java 17,不过现在看来这种担心是多余的。

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

  • IntelliJ IDEA 2021.2.2 (Ultimate Edition)
  • JDK 17

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

 

目录
相关文章
|
3月前
|
Java 数据库连接 mybatis
成功解决:java.lang.Integer cannot be cast to java.lang.Long
这篇文章讨论了Java中常见的类型转换错误,包括Integer转Long、Integer转String以及在MyBatis中Map接收查询结果时的类型不匹配问题,并提供了相应的解决方法。
|
2月前
|
Java 应用服务中间件 Spring
IDEA 工具 启动 spring boot 的 main 方法报错。已解决
IDEA 工具 启动 spring boot 的 main 方法报错。已解决
|
2月前
|
Oracle Java 关系型数据库
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
如果遇到"exec format error"问题,文章建议先检查Linux操作系统是32位还是64位,并确保安装了与系统匹配的JDK版本。如果系统是64位的,但出现了错误,可能是因为下载了错误的JDK版本。文章提供了一个链接,指向Oracle官网上的JDK 17 Linux版本下载页面,并附有截图说明。
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
|
3月前
|
Java Maven 容器
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
使用IntelliJ IDEA的Artifacts功能,可以将项目依赖的第三方jar包打包进jar文件中,实现双击jar包即可直接运行。
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
|
3月前
|
Java 开发工具
开发工具系类 之 Cannot determine path to ‘tools.jar‘ library for 17 (D:/Program Files/Java/jdk-17.0.9)
这篇文章讲述了作者在升级JDK至17版本后遇到IDEA无法识别`tools.jar`的问题,并提供了两种解决方法:升级IDEA版本或降低JDK版本,并提供了相关版本的IDEA兼容性信息。
开发工具系类 之 Cannot determine path to ‘tools.jar‘ library for 17 (D:/Program Files/Java/jdk-17.0.9)
|
3月前
|
前端开发 Java
成功解决:java.lang.String cannot be cast to java.lang.Integer
这篇文章记录了作者在使用Axios二次封装时遇到的一个Java类型转换问题,即前端传递的字符串参数不能直接转换为Integer类型,文章提供了正确的转换方法来解决这个问题。
成功解决:java.lang.String cannot be cast to java.lang.Integer
|
3月前
|
开发工具 git
成功解决 IDEA 2020 版本 代码报错不提示的几种方案
这篇文章提供了几种解决IntelliJ IDEA 2020版本中代码报错不提示问题的方案,包括通过修改文件夹权限、暂存本地更改后进行git pull,以及在git pull后应用暂存的更改并提交代码到远程仓库的方法。
|
3月前
|
JSON 前端开发 fastjson
成功解决:java.util.LinkedHashMap cannot be cast to com.zyz.bookshopmanage.pojo.GoodsInfo
这篇文章讲述了在Java后端开发中遇到的类型转换错误,即无法将`java.util.LinkedHashMap`转换为`com.zyz.bookshopmanage.pojo.GoodsInfo`对象的问题。文章提供了解决这个问题的两种方法:一是将对象转换为JSON字符串再反序列化为对象,二是通过在项目的pom文件中引入fastjson库来简化转换过程。最后,文章展示了成功转换对象的代码示例。
成功解决:java.util.LinkedHashMap cannot be cast to com.zyz.bookshopmanage.pojo.GoodsInfo
|
3月前
|
开发工具 数据安全/隐私保护
【Azure Developer】使用MSAL4J 与 ADAL4J 的SDK时候,遇见了类型冲突问题 "java.util.Collections$SingletonList cannot be cast to java.lang.String"
【Azure Developer】使用MSAL4J 与 ADAL4J 的SDK时候,遇见了类型冲突问题 "java.util.Collections$SingletonList cannot be cast to java.lang.String"
|
3天前
|
监控 安全 Java
在 Java 中使用线程池监控以及动态调整线程池时需要注意什么?
【10月更文挑战第22天】在进行线程池的监控和动态调整时,要综合考虑多方面的因素,谨慎操作,以确保线程池能够高效、稳定地运行,满足业务的需求。
70 38