JAVA JDK 环境变量配置 入门详解 - 精简归纳


JERRY_Z. ~ 2020 / 9 / 13

转载请注明出处!️



一、为什么java jdk 要配置环境变量

配置环境变量,可以使 jdk 全局生效!

因为我们没有配置 jdk 的环境变量,所以在没有在 jdk/bin 目录下是运行不了 java.exe (java 解释器) 和 javac.exe (java编译器) 的,当然我们也可以去 jdk/bin 目录下运行 java 程序啊,但我们在 bin 目录下通过启动 java.exe,然后再通过 javac.exe 要把一个 java 文件编译成 class 文件,这个 class 文件就生成在 jdk/bin 目录里了,这样的文件组织方式显然是不好的,所以我们需要把 jdk 配置到 path 里面,这样在任何目录下(全局)都能运行 java.exe 和 javac.exe 来编译 java 文件了,这样就不会让 jdk/bin 目录里有许多我们的 java 文件和 class 文件。


二、如何配置

(1)、首先,找到 jdk 的安装目录

以博主为例,进入这一层 C:\Program Files\Java\jdk1.8.0_121目录,复制以备后用。然后,通过“控制面板”进入“系统”属性,实际上直接选择“此电脑”点击右键选择“属性”即可:

(2)、如上图所示,点击“高级系统设置”,进入如下界面:

(3)、再点击“环境变量”,进入如下界面:

(4)、选择“系统变量”区域的“新建”功能,点击后,进入如下界面:

(5)、设置系统变量名为JAVA_HOME

变量值为C:\Program Files\Java\jdk1.8.0_121,点击“确定”,然后打开“系统变量”区域的Path,将这条语句 ;%JAVA_HOME%\bin 追加到 Path 变量值的最后面,如下图所示:

(6)、至此,环境变量就已经设置完啦!

但是空口无凭啊,我们再验证一下,用事实说话。因此,打开“命令行窗口”,输入命令java,结果如下图所示:

(7)、再输入命令javac,结果如下图所示:

(8)、说明:

<1>、如上图所示的结果,已经可以证明我们的环境变量配置成功啦!不过说实话,我们在C盘验证不是很好,因为配置环境变量就是为了在其它位置(如D盘)也可以运行 jdk,我们都把 jdk 安装到C盘了,再在C盘进行验证就有些取巧了,因为就算环境变量没有配置成功,如果我们进入相应的安装目录下,也是可以运行 jdk 的。因此,我们来一个狠的,直接在D盘的根目录下创建一个.java文件,然后在“命令行窗口”编译并运行,如果这样做还能成功的话,那毫无疑问,环境变量我们肯定配置成功啦!

如上图所示,我们先在D盘的根目录下创建一个名为 HelloWorld.txt 文件,输入代码,然后我们再修改文件的后缀 .txt 为.java即可。最后,在“命令行窗口”输入命令

观察运行结果,显然我们的环境变量配置成功啦!

<2>、为啥要配置 JAVA_HOME,一定要用 JAVA_HOME 命名吗?

我们电脑如果装了多个版本的 jdk,我们只需要在 JAVA_HOME 中把 jdk 的目录添加进去,而不用在 path 里面加 bin 目录的路径

因为有些开发工具,如(eclipse,IDEA, tomcat)都会去扫描你的JAVA_HOME 变量,看看你的电脑装了几个版本的 jdk。可以不用 JAVA_HOME 这个名字当参数名,那么有些软件启动需要 JAVA_HOME,例如 tomcat,当你不用这个命名,你就需要去修改 tomcat 的 bin 目录下的 catalina.bat 文件,才能启动 tomcat,何必呢?

<3>、我们为什么没有配置 CLASSPATH 变量?

jdk1.5 之后就不用再配置 CLASSPATH了,当然,我们为了保证向下兼容,也可以配置上为好!


三、附

本文第二部分内容来源于:https://blog.csdn.net/qq_35246620/article/details/61208961?ops_request_misc=%7B%22request%5Fid%22%3A%22159996354219195188335008%22%2C%22scm%22%3A%2220140713.130102334..%22%7D&request_id=159996354219195188335008&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-2-61208961.pc_ecpm_v3_pc_rank_v3&utm_term=jdk环境变量配置&spm=1018.2118.3001.4187

交流方式:

️ ️ ️

QQ: 1846334075

WeChat: zhoujirui54

CSDN:https://blog.csdn.net/D_si_God

Cnblogs:https://www.cnblogs.com/JERRY-Z-J-R/

GitHub:https://github.com/JERRY-Z-J-R

Gitee:https://gitee.com/JERRY-Z-J-R

JAVA JDK 环境变量配置 入门详解 - 精简归纳的更多相关文章

  1. Python安装与环境变量配置 入门详解 - 精简归纳

    Python安装与环境变量配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 9 / 24 转载请注明出处!️ 目录 Python安装与环境变量配置 入门详解 - 精简归纳 一.下载Py ...

  2. GoSDK的安装及环境变量配置 入门详解 - 精简归纳

    GoSDK的安装及环境变量配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 10 / 29 转载请注明出处!️ 目录 GoSDK的安装及环境变量配置 入门详解 - 精简归纳 一.进入G ...

  3. JDK安装与基础环境变量配置 入门详解 - 精简归纳

    JDK安装与基础环境变量配置 JERRY_Z. ~ 2020 / 9 / 17 转载请注明出处!️ 目录 JDK安装与基础环境变量配置 一.下载 二.安装 (1).双击.exe文件 (2).全选安装工 ...

  4. Sublime Text3 for Java 编译运行环境配置 入门详解 - 精简归纳

    Sublime Text3 for Java 编译运行环境配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 9 / 24 转载请注明出处!️ 目录 Sublime Text3 for ...

  5. gcc g++ 安装与配置 入门详解 - 精简归纳

    gcc g++ 安装与配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 9 / 24 转载请注明出处!️ 目录 gcc g++ 安装与配置 入门详解 - 精简归纳 一.下载MinGW ...

  6. Cisco思科模拟器 交换机IP地址的配置 入门详解 - 精简归纳

    Cisco思科模拟器 交换机IP地址的配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 10 / 10 转载请注明出处!️ 目录 Cisco思科模拟器 交换机IP地址的配置 入门详解 ...

  7. Cisco思科模拟器路由器各个端口IP地址的配置及路由协议RIP的配置 入门详解 - 精简归纳

    Cisco思科模拟器路由器各个端口IP地址的配置及路由协议RIP的配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 11 / 21 转载请注明出处!️ 附: 交流方式: ️ ️ ️ Q ...

  8. 学会Git玩转GitHub(第二篇) 入门详解 - 精简归纳

    学会Git玩转GitHub(第二篇) 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 10 / 25 转载请注明出处!️ 目录 学会Git玩转GitHub(第二篇) 入门详解 - 精简归纳 ...

  9. 学会Git玩转GitHub(第一篇) 入门详解 - 精简归纳

    学会Git玩转GitHub(第一篇) 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 9 / 25 转载请注明出处!️ 目录 学会Git玩转GitHub(第一篇) 入门详解 - 精简归纳 ...

随机推荐

  1. C#LeetCode刷题-回溯算法

    回溯算法篇 # 题名 刷题 通过率 难度 10 正则表达式匹配   18.8% 困难 17 电话号码的字母组合   43.8% 中等 22 括号生成   64.9% 中等 37 解数独   45.8% ...

  2. 后端排序时去掉element表格排序的null状态

    经常会遇到远程排序,需要去掉null状态的排序,当设置sortable='custom'时,设置sort-orders为['ascending', 'descending']是不生效的.然后查到了一种 ...

  3. 对于python装饰器结合递归的进一步理解

    对于python装饰器结合递归的进一步理解 代码如下: import functools def memoize(fn): print('start memoize') known = dict() ...

  4. jieba分词的几种形式

    1.精确模式:试图将句子最精确地分开,适合文本分析 seg_list = jieba.cut(test_text, cut_all=False) seg_list = " ".jo ...

  5. node-sass 报错的解决方法

    今天在运行项目发现原来好好的项目报错了.报错大致信息如下: 这段代码是我升级node之后里面根据不同的项目位置什么的会有所不同. 简单的说,这段代码意思是node-sass 不兼容 node v8 的 ...

  6. linux修改最大的文件描述符(max file descriptors)

    用xshell登录linux系统之后,用命令>ulimit -a 注意到系统模式是1024个 使用>ulimit -n 数量,可临时更改,生效范围为当前会话 永久修改的方法: > v ...

  7. Docker 架构及工作原理

    通过下图可以得知,Docker 在运行时分为 Docker 引擎(服务端守护进程) 和 客户端工具,我们日常使用各种 docker 命令,其实就是在使用 客户端工具 与 Docker 引擎 进行交互. ...

  8. neutron plugin 与 extension 编写流程

    原文链接:neutron plugin 与 extension 编写流程 参考: 怎样写 OpenStack Neutron 的 Plugin (一)怎样写 OpenStack Neutron 的 P ...

  9. 独立集(bubble) 题解

    问题描述 有一天,一个名叫顺旺基的程序员从石头里诞生了.又有一天,他学会了冒泡排序和独立集.在一个图里,独立集就是一个点集,满足任意两个点之间没有边.于是他就想把这两个东西结合在一起.众所周知,独立集 ...

  10. Java高级特性——反射机制(第三篇)

    获取类运行时的结构 通过反射获取运行时类的完整结构 Field.Method.Constructor.Superclass.Interface.Annotation >实现的全部接口 >所 ...