关于eclipse报 Could not find 'tools.jar' in the active JRE 问题详解
2020-10-19 14:21 在上海的日子里 阅读(2324) 评论(0) 编辑 收藏 举报前言:
Java菜鸟之路走的太难了呜呜!先说问题和解决方法,再来谈谈菜鸟的踩坑之路!
一、问题描述
最近学习springboot框架,按照教程照葫芦画瓢下载了一个sts插件,然后搭建springboot环境和运行springboot项目。之后eclipse每次打开都会报“ Could not find 'tools.jar' in the active JRE " 错误!
具体如图所示:
但是在eclipse配置的jdk中只有一个jre1.8.0_211,而且已经做出了修改,但还是会报这个错误!!!
二、问题原因
1、在高版本的jdk中自动删除了jre里面的tools.jar文件,转移到jdk的lib文件内了。
2、多版本jdk问题,eclipse后来更改了jdk的版本,但是eclipse配置信息中还是旧的版本。(查看是否是版本不统一的方法)如下:
(1)jdk安装目录,确实存在多版本问题,同时自己也确实修改过。
(2)eclipse中点击:Window --> Preferences -->Java --> Install JREs查看:
(3)查看eclipse配置信息:
第一步查看eclipse配置信息,最先启动的是jre还是jdk,是否符合我们的配置的jre版本;
eclipse --> help --> about Eclipse IDE ,选择点击”Installation Details“,如下图所示:
选择点击”Configuration“,找到--vm 相关信息,查看是jdk,还是jre,以及是什么版本;
上图所示,是已经修改过的,未修改之前是jre1.8.0_244,这个错误原来和我文件中多个版本的jdk路径有关系!
三、解决方法
百度到的解决方法大致有两种:
一种方法是听着比较高端,如下
找到STS的安装路径下的SpringToolSuite4.ini文件。在最开始增加两行 -vm F:\Program Files\Java\jdk1.8.0_131\bin\javaw 第二行是你的jdk路径。
另一种方法是按照字面意思缺啥补啥,即移动tools.jar到报错路径
1、方法1:按照字面意思--缺啥补啥
以我遇到的报错信息为例:
在现运行的jre路径下没有找到 tools.jar文件,springboot项目的运行需要这个文件。现在eclipse运行依赖的jre版本为jre1.8.0_241,
可以寻找的tool.jar文件的地址如下。。。
解决办法:
----在已有tools.jar 的jdk中复制一份转移到报错路径中。
2、方法2:
查看到eclipse配置信息中和我们已经勾选的jre不一样就要取改变其配置信息。步骤如下:
(1)找到eclipse安装的文件夹,我的是在D盘:
(2点进去,先择eclipse的配置文件,即eclipse.ini文件,以记事本的方式打开,在开头添加如下信息:
-vm C:\Program Files\Java\jdk1.8.0_211\bin\javaw // 正确jdk版本的路径信息
如图所示:
(3 重启eclipse,问题就解决了,也可以重新eclipse的配置信息。
四、概念理解和坑点
1、要想解决该问题,其实很简单,百度上面都有具体的解决方法,但是!却和我们理解的不一样,因为在该问题上eclipse和sts都是一个东西!!!!
理解了这个概念也就理解了百度上的解决方法---
SpringToolSuite4.ini文件 和 eclipse.ini文件是一个东西,修改sts配置文件即SpringToolSuite4.ini文件,也就是修改eclipse安装目录下的eclipse.in文件
如果不理解这两个概念就会出现下图评论中问题:
该评论中不是找不到ini文件,是不知道解决方法中提到的 SpringToolSuite4.ini文件,也就是修改eclipse安装目录下的eclipse.in文件---因为我们自己下载的STS插件都是zip压缩文件,当然找不到哦
2、STS和eclipse的区别
但是 eclipse和STS在客观上是不一样的!!!
spring Tool Suite(sts)就是一个基于Eclipse的开发环境, 用于开发Spring应用程序。它提供了一个现成的使用环境来实现, 调试, 运行, 和部署你的Spring应用程序。包括为关键的的服务器和云计算,Git, Maven, AspectJ, 和最新的Eclipse版本提供整合支持。
换句话说, Spring Tool Suite是一个定制版的eclipse, 由spring framework官方在javaee版本的eclipse上包装spring插件出来的版本, 其核心还是javaee版本的eclipse。
所以可以直接从官网下载已经集成了sts的Eclipse。
大白话翻译一下:STS是一个高度封装spring的框架,而且这个框架集成度特别高,现在已经可以作为eclipse的插件方式进行安装了!!!!