win10的JDK安装环境变量配置

本文详细介绍了在Windows环境下如何下载JDK 8,包括检查系统版本和选择对应版本,以及如何配置JAVA_HOME、Path和CLASSPATH环境变量。重点讲述了环境变量配置的原理,涉及Java.exe与path、classpath的关系,并解释了不同版本JDK对配置的需求变化。

JDK安装环境变量配置以及背后的原理

JDK的安装

首先呢我们打开jdk的官网

http://www.oracle.com/technetwork/java/javase/downloads/

进入后我们找到jdk8,我之前配置过jdk11,但是后来发现因为jdk版本过高,在win11下不仅部分JavaWeb功能被更新换代了,同时配置Tomcat的时候还需要在startup文件下设置环境变量,后续还有种种问题,不要太悲催,索性换个年轻的版本啦.
在这里插入图片描述

因为我的电脑是windows64,所以我下载64对应的exe:

image-20210710142950953

有些小朋友可能想知道如何看自己电脑的版本:

右键选择显示设置:

image-20210710151352382

image-20210710151504481 image-20210710232928881 image-20210710233304877

这时我的jdk已经下载好啦,同时还生成了jre8.注意:如果你下载的是jdk11,不会自动帮你生成jre.在普通的Java项目中,有没有jre其实并不是那么重要.但是在Tomcat的配置中,有没有jre直接影响服务器对路径的读取!这个时候需要手动生成jre!

image-20210711000444923

然后就到了激动人心的环境变量配置时间.

环境变量配置

显示设置点击后搜索高级系统设置,然后可以得到:

在这里插入图片描述
在这里插入图片描述

在系统变量中新建一个变量JAVA_HOME
在这里插入图片描述

image-20210711001009525

需要找到安装jdk下的包含lib目录的路径:

image-20210711000638512

image-20210711000741018

然后需要配置path

变量名:Path

变量值:%JAVA_HOME%\bin;

image-20210711001333795

最后配置CLASSPATH

变量名:CLASSPATH

变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
注意哦,此处分号的前面的点一定要写,否则无法用命令行读取java的.class文件。

图片就不放了.

最后在搜索栏里搜索cmd,以管理员身份运行

image-20210711001740782

输入命令java -version

出现如图所示的结果即可.

image-20210711001633392

原理

鄙人不才,有两年的环境变量配置经验(配置了两年才配好),好的啦,开个玩笑.

我在配置tomcat环境变量失败的时候,曾经看到一个奇怪的要求.

需要在setclasspath.bat文件的开头声明环境变量,简单就是set JAVA_HOME =路径、set JRE_HOME=路径.

有的甚至只需要在catalina.bat中设置就好.

所以我们发现第一:java的各个bat之间有互相调用的关系.

第二:系统无法直接读取jdk中我们需要的文件(比如我们真正调用的java.exe)

第三,但是输入命令时系统可以直接读取jdk中某些其他文件.

根据以上的推测,我去查找了求证资料.整理如下:

1:环境变量其实就是一系列的目录,告诉我们文件的具体方位.而参照我们C语言每次运行时会弹出的exe文件,对Java代码的编译其实也是启动java.exe或者其它.所以我们要将java.exe等目录加入到path这个环境变量中.cmd的命令会直接去path读取.

但是问题来了,要读取的目录与命令有那么多,难道我们要将所有的命令都加入到path中嘛,我们怎么知道什么时候要用到什么目录.

根本不用担心,因为path对目录的读取是一个目录一个目录读下去的.

举个例子,我们假设path接收命令要对jdk的lib目录中的dt进行读取.它发现有这样一条指令%JAVA_HOME%lib.JAVA_HOME我们之前已经配置过了是jdk的路径,指令顺利进入lib目录,读取到tools.jar,发现不对开始读取下一个sa-jdi.jar,一直读到自己想要的为止.

image-20210711120257015

2:那么classpath的作用又是什么?

我们在idea中新建一个Java文件:

image-20210711120823274

比如这个,最开始是Text16.java,编译过后就变成了Text16.class文件,然后由类装载器进行装载,那么类装载器怎么知道.class文件在哪.这个时候就需要用到classpath啦.classpath和path的原理相同,也是一个目录一个目录的去读取,在dt.jar与tools.jar中.

,最开始是Text16.java,编译过后就变成了Text16.class文件,然后由类装载器进行装载,那么类装载器怎么知道.class文件在哪.这个时候就需要用到classpath啦.classpath和path的原理相同,也是一个目录一个目录的去读取,在dt.jar与tools.jar中.

但是在1.5之后classpath不是必须配置;了,在1.5之前找不到JDKlib文件下的.jar所以无法在当前目录下加载类.而JDK的1.5之后JRE能自动搜索目录下类文件,并对dt.jar进行加载,也就没有必要进行手动配置啦.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值