02、java语言为什么要配置环境变量?配置环境变量的两种方案?遇到问题的几种解决办法

news2025/1/16 3:01:23

探讨笔记

  • 1、java 语言为什么要配置环境变量?
    • 其一、未配置环境变量之前,能否执行 java、javac 的命令?
    • 其二、未配置环境变量之前,在 Windows 命令行窗口,如何执行相关命令?
    • 其三、未配置环境变量之前,如何查看 java 版本的命令:java -version ?
  • 2、配置 java 语言的环境变量:
    • 其一、环境变量的区分:用户环境变量、系统环境变量:
    • 其二、用户环境变量或系统环境变量中,Path 变量的作用:
    • 其三、在 Path 变量中,添加环境变量的过程(即:配置 java 环境变量的过程):
    • 其四、成功配置环境变量后,在任何文件目录下都能成功运行 java/javac 命令:
  • 3、开发过程中配置 java 语言环境变量的改进:
    • 其一、在 Path 变量中,添加环境变量的过程(即:配置 java 环境变量的过程):
    • 其二、成功配置环境变量后,在任何文件目录下都能成功运行 java/javac 命令:
  • 4、在配置 java 环境变量中可能存在的问题:
    • 其一、之前电脑上有 jdk7 ,现在装了 jdk8,那么使用的时候到底是哪个?
    • 其二、若想在用户环境变量或系统环境变量中,配置 java 环境变量,但是没有 Path 怎么办?
    • 其三、关于用户环境变量或系统环境变量,配置 java 环境变量的区别:
  • 5、小结:

1、java 语言为什么要配置环境变量?

// 答:因为想要在全局都能使用 java、javac 的执行命令(即:java.exe、javac.exe);

在这里插入图片描述

其一、未配置环境变量之前,能否执行 java、javac 的命令?

// 答:可以的,但必须要在 bin 文件下才能执行(因为 java.exejavac.exe 文件就在 bin 文件下);

在这里插入图片描述

其二、未配置环境变量之前,在 Windows 命令行窗口,如何执行相关命令?

// 需要切换到安装 jdkbin 文件目录下来执行相关命令:

A、执行 java 命令:

在这里插入图片描述

B、执行 javac 命令:

在这里插入图片描述

C、注意此时在全局情况下执行 java/javac 的命令是不能被识别的,因此这就是要配置环境变量的原因;

// 即:希望在任何文件下都能成功执行 java/javac 命令(或成功执行 java.exe/javac.exe 命令),配置环境变量后就能实现该需求;

其三、未配置环境变量之前,如何查看 java 版本的命令:java -version ?

// 此时的 java 版本是:1.8.0_131(即:JDK 的版本值);

在这里插入图片描述

2、配置 java 语言的环境变量:

其一、环境变量的区分:用户环境变量、系统环境变量:

// 对于 java 配置环境变量来说,配到用户环境变量或系统环境变量都可以;

在这里插入图片描述

其二、用户环境变量或系统环境变量中,Path 变量的作用:

// 即:path:是指 windows 系统执行命令时要搜寻的路径;

// 当我们执行 javac.exe/java.exe 指令时,其先会在当前的目录下查找是否有 javac.exe/java.exe 的指令,若在当前目录下有这个指令,那么就直接执行该指令; 若在当前目录下没有该指令,那么就会去找环境变量中的 Path 路径,然后就去找各个路径下是否有 javac.exe/java.exe 的指令,存在该指令的话就执行该指令;

// 因此,我们想要 javac.exe/java.exe 的指令在任何文件目录下,都可以执行成功; 那么我们只需要将 bin 文件路径(如:D:\24javaTools\jdk1.8.0_131\bin),放在 Path 路径下就可以了;

其三、在 Path 变量中,添加环境变量的过程(即:配置 java 环境变量的过程):

Path 中添加的代码为:;D:\24javaTools\jdk1.8.0_131\bin,一般放在最前面(注意:分号是英文的分号);

// 注意:Win10 等添加环境变量只需要新加 D:\24javaTools\jdk1.8.0_131\bin 即可,如下所示:

在这里插入图片描述

// 注意:有的是直接输入的,有的是直接编复制的;

在这里插入图片描述

其四、成功配置环境变量后,在任何文件目录下都能成功运行 java/javac 命令:

// 如:在 C 盘的 admin 文件目录下,运行 java.exe 命令没有问题;

在这里插入图片描述

// 如:在 C 盘的 admin 文件目录下,运行 javac.exe 命令没有问题;

在这里插入图片描述

// 如:在 C 盘的 admin 文件目录下,运行 java -version 命令没有问题;

在这里插入图片描述

3、开发过程中配置 java 语言环境变量的改进:

其一、在 Path 变量中,添加环境变量的过程(即:配置 java 环境变量的过程):

// 将 bin 目录的上层目录(即:D:\24javaTools\jdk1.8.0_131 目录),用 %JAVA_HOME% 来代替(即:将 JAVA_HOME 变量,动态的在 Path 下引用),而 %JAVA_HOME%\bin 中的两个 % 表示:获取 JAVA_HOME 变量值的意思;

在这里插入图片描述

在这里插入图片描述

// 其实际与在 Path 下直接配置:D:\24javaTools\jdk1.8.0_131\bin 的操作,是一样的意思;

其二、成功配置环境变量后,在任何文件目录下都能成功运行 java/javac 命令:

// 如:在 C 盘的 admin 文件目录下,运行 java.exe 命令没有问题;

在这里插入图片描述

// 如:在 C 盘的 admin 文件目录下,运行 javac.exe 命令没有问题;

在这里插入图片描述

// 如:在 C 盘的 admin 文件目录下,运行 java -version 命令没有问题;

在这里插入图片描述

其三、环境变量的改进方案的好处:

// 后面搭建 Tomcat(即:与 Web 相关) 的服务器时,也将去识别 JAVA_HOME 这个变量(目的:使用 jdk 里面的库文件);
// 因为:Tomcat 找的就是 JAVA_HOME 这个变量,因此提前配 java 环境的时候,提前将 JAVA_HOME 配置后,省去后面的麻烦;

4、在配置 java 环境变量中可能存在的问题:

其一、之前电脑上有 jdk7 ,现在装了 jdk8,那么使用的时候到底是哪个?

// 主要看:环境变量配的是哪个,在使用的过程中使用的就是哪个;

其二、若想在用户环境变量或系统环境变量中,配置 java 环境变量,但是没有 Path 怎么办?

// 如下可能没有 Path 路径:

// 解决方案:直接建一个 Path 变量,然后再将对应的地址放在 Path 变量中即可;

在这里插入图片描述

其三、关于用户环境变量或系统环境变量,配置 java 环境变量的区别:

// 用户环境变量配置 java 环境,只适用于当前用户,有可能系统不能正确的识别当前用户信息,导致运行 java 失败;

// 系统环境变量配置 java 环境,比较保险,不管哪个用户都可以识别下面系统环境变量配置的信息,

// 一般来说配在上面和下面都一样,但 java 的环境变量配在下面(即:系统环境变量更稳一些)

5、小结:

其一、哪里有不对或不合适的地方,还请大佬们多多指点和交流!
其二、若有转发或引用本文章内容,请注明本博客地址(直接点击下面 url 跳转) https://blog.csdn.net/weixin_43405300,创作不易,且行且珍惜!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1623210.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1小时学会SpringBoot3+Vue3前后端分离开发

首发于Enaium的个人博客 引言 大家可能刚学会Java和Vue之后都会想下一步是什么?那么就先把SpringBoot和Vue结合起来,做一个前后端分离的项目吧。 准备工作 首先你需要懂得Java和Vue的基础知识,环境这里就不多说了,直接开始。 …

Spring Boot-基础操作,常用工具,配置文件

lombok工具 首先将lombok的依赖引入 Lombok是一个实用的Java类库,能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,并可以自动化生成日志变量,简化java开发、提高效率。 日志操作 自定义日志打印 有以下两步: 在一个类中先获…

Vue3 实现 Three.js粒子特效

效果 <template><div id"waves" /> </template><script setup> import { ref, onMounted, onUnmounted } from "vue"; import * as THREE from "three";const amountX ref(50); const amountY ref(50); const color …

MySQL统计一个表的行数,使用count(1), count(字段), 还是count(*)?

为什么要使用count函数&#xff1f; 在开发系统的时候&#xff0c;我们经常要计算一个表的行数。比如我最近开发的牛客社区系统&#xff0c;有一个帖子表&#xff0c;其中一个功能就是要统计帖子的数量&#xff0c;便于分页显示计算总页数。 CREATE TABLE discuss_post (id i…

线性模型算法-完结总结篇

简介 该篇文章就是在CSDN上更新的最终版本。 本文章将介绍&#xff1a;机器学习中的线性模型有关内容&#xff0c;我将尽可能做到 详细地介绍线性模型的所有相关内容,模块如下&#xff0c;希望这些将有助于读者了解这种最初步但却强大的算法&#xff1a; 线性回归逻辑回归 S…

【ENSP】VRRP配置方法

VRRP配置步骤 1.配置虚拟ip地址作为网关&#xff0c;进行切换路由器 2.配置vrrp优先级&#xff0c;越大越优先 3.配置延迟抢占时间 4.配置备份组监视接口 AR1路由器配置 u t m #关闭提示 sys …

Zilliz Cloud 助力 AI 在线教育:智慧树的创新之路

在信息技术飞速发展的今天&#xff0c;教育行业正经历着一场深刻的变革。智慧树&#xff0c;作为全球领先的学分课程运营服务平台&#xff0c;始终站在教育创新的前沿。 为了进一步提升教育质量和效率&#xff0c;智慧树携手 Zilliz Cloud&#xff0c;共同开启了一场教育与技术…

Linux——(grep指令及zip/tar压缩指令)

1.grep指令 语法&#xff1a; grep【选项】查找字符串 文件 功能&#xff1a; 在文件中搜索字符串&#xff0c;将找到的行打印出来 常用选项&#xff1a; -i &#xff1a;忽略大小写&#xff0c;所以大小写视为相同 -n &#xff1a; 顺便输出行号 -v &#xff1a;反向选择&…

综合大实验

题目&#xff1a; 1、R4为ISP&#xff0c;其上只配置IP地址&#xff1b;R4与其他所直连设备间均使用公有IP&#xff1b; 2、R3-R5、R6、R7为MGRE环境&#xff0c;R3为中心站点&#xff1b; 3、整个OSPF环境IP基于172.16.0.0/16划分&#xff1b;除了R12有两个环回&#xff0c;其…

未来五十年,智能科技将如何改变传统行业格局?

未来五十年内&#xff0c;随着人工智能&#xff08;AI&#xff09;和智能科技的不断发展&#xff0c;许多行业将面临被取代的风险。虽然这种趋势可能会带来一些担忧&#xff0c;但也将为人类社会带来巨大的变革。下面将详细探讨哪些行业可能会在未来被智能科技所取代。 ▶ 制造…

【ruoyi-vue】登录解析(前端)

登录代码 1、登录之后做了什么&#xff1f; 执行登陆方法&#xff0c;成功之后&#xff0c;路由跳转到指定路径或者根目录 2、this.$store.dispatch是什么意思&#xff1f; this.$store.dispatch(‘Login’, this.loginForm) 来调取store里的user.js的login方法3、this.$r…

【Go语言】接口类型(一)接口类型与接口的值

本文是介绍golang接口类型的第一篇&#xff0c;主要介绍接口类型与接口类型的值的相关概念。 1. 静态类型、动态类型、动态值 所谓的静态类型&#xff08;即 static type&#xff09;&#xff0c;就是变量声明的时候的类型。 var age int // int 是静态类型 var name strin…

SSTV音频转图片

SSTV工具有很多&#xff0c;这里使用RX-SSTV慢扫描工具 下载安装 RX-SSTV解码软件 下载地址&#xff1a;https://www.qsl.net/on6mu/rxsstv.htm 一直点下一步&#xff0c;安装成功如下图: 虚拟声卡e2eSoft 由于SSTV工具是根据音频传递图片信息&#xff0c;正常解法需要一…

【动态规划】C++ dp子数组问题(最大/最长:环形/子数组和、乘积最大/为正数、单词拆分、子串)

文章目录 1. 前言 - 理解动态规划算法2. 例题最大子数组和 3. 算法题3.1_环形子数组的最大和3.2_乘积最大子数组3.3_乘积为正数的最长子数组长度3.4_等差数列划分3.5_最长湍流子数组3.6_单词拆分467.环绕字符串中唯一的子字符串 1. 前言 - 理解动态规划算法 关于 动态规划的理…

chrome 浏览器 f12 如何查看 websocket 消息?

1. 打开目标页面 2. f12--》网络--》WS&#xff0c;然后刷新页面( 如果不刷页面&#xff0c;就会看不到 websocket 请求&#xff0c;因为 websocket 是长连接&#xff0c;页面加载后只发出一次连接请求&#xff0c;不像 http 接口&#xff0c;不用刷新页面&#xff0c;待会儿也…

常见UI设计模式有哪些?从小白到资深必学

通过了解如何以及何时使用&#xff0c;每种 UI 设计模式都有其特定的目的&#xff0c;可以创建一个一致高效的界面。UI 设计模式为用户界面设计者提供了一种通用语言&#xff0c;并为网站和应用程序的用户提供了一致性。本指南&#xff0c;即时设计总结了 UI 设计模式和 UI 设计…

百种提权及手段一览系列第5集

特权升级的危险是显而易见的。通过提升权限&#xff0c;攻击者可以绕过网络安全措施&#xff0c;从而损害数据完整性、机密性和系统可用性。对于组织而言&#xff0c;这可能会导致数据泄露、系统停机以及潜在的法律和声誉后果。识别权限升级的迹象并部署预防性网络安全措施对于…

【团体程序设计天梯赛 往年关键真题 详细分析完整AC代码】L2-009 抢红包(排序) L2-010 排座位 (dfs)

【团体程序设计天梯赛 往年关键真题 详细分析&完整AC代码】搞懂了赛场上拿下就稳 【团体程序设计天梯赛 往年关键真题 25分题合集 详细分析&完整AC代码】&#xff08;L2-001 - L2-024&#xff09;搞懂了赛场上拿下就稳了 【团体程序设计天梯赛 往年关键真题 25分题合…

Vue2学习笔记(尚硅谷天禹老师)

目录 一、入门案例 二、模板语法 三、数据绑定 四、el和data的两种写法 五、MVVM模型 六、Object.defineproperty方法 七、Vue中响应式原理 八、数据代理 九、methods配置项 十、Vue中的事件处理 十一、Vue中的键盘事件 十二、计算属性 十三、监视属性watch 十四、绑定Class样式…

《系统架构设计师教程(第2版)》第10章-软件架构的演化和维护-01-软件架构演化概述

文章目录 1. 演化的重要性2. 架构演化示例 教材中&#xff0c;本节名为&#xff1a;“软件架构演化和定义的关系” 1. 演化的重要性 演化目的&#xff1a;维持软件架构自身的有用性 为什么说&#xff0c;软件架构是演化来的&#xff0c;而不是设计来的&#xff1f; 软件架构的…