作者:文墨闲谈

链接:https://www.zhihu.com/question/28428426/answer/114375451

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原因:这是因为安装 java 时把 jdk 的路径和 jre 的路径选择成一样,就造成覆盖了。

这时候你在 lib 下也找不到 tools.jar 和 dt.jar.

解决:

  1. 首先卸载 java ,卸载很容易,直接把这两个有关 java 的程序给卸载了就行了(用 windows 自带的卸载)。

卸载完你也会发现,原来放 java 的文件夹也空了。

  1. 重新安装在 D 盘新建一个 java 文件夹,在 java 文件下新建两个文件夹,分别命名为 jdk 和 jre.

  2. 双击程序进行安装,安装时有两次选择路径的机会,第一次是让你选择 jdk 安装路径,选择为 D:\java\jdk,第二次是让你选择 jre 的安装路径,选择为 D:\java\jre

  3. 安装完成后,进行环境变量的配置,计算机右击属性,-高级系统设置-环境变量-选择下边的系统变量

  4. 创建系统变量

新建变量名:Path

变量值:C:\ProgramData\Oracle\Java\javapath;%java_home%\bin;%java_home%\jre\bin

新建变量名:JAVA_HOME

变量值:D:\java\jdk

新建变量名:ClassPath

变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

之所以把 JAVA_HOME 设为 D:\java\jdk, 是因为安装过程中生成的 dt.jar,tools.jar 是放在了 D:\java\jdk\lib 目录下,它都是 jdk 的东西。

classPath 用 JAVA_HOME 来做一个相对路径。

所以 JAVA_HOME 必须是 jdk 的安装目录,且后面不可以有分号,若它后面有分号,则 %JAVA_HOME%\lib\dt.jar就不是一个目录了。

  1. 测试打开 cmd, 输入 java, 输入 javac, 输入 java -version 都有反应就代表安装成功