彻底弄清环境变量

  • 前言
  • 一、运行软件的方式
  • 二、一些“走了后门”的软件
  • 三、怎么走后门——环境变量
  • 总结

前言

(本篇同样适用于现在需要配置环境变量的小伙伴,不要嫌罗嗦,请一定看完!)
很多学习编程的同学在下载很多软件包后发现都有一个步骤——配置环境变量,对于不了解环境变量的人来说简直可以说是噩梦,那环境变量到底是什么?相信在看完这篇博客后你不会在产生疑问

一、运行软件的方式

问大家一个问题:你知道几种运行软件的方式?
从我们小时候接触计算机开始,我们就知道想要运行一个软件我们双击桌面上的图标或者右键打开就可以打开一个软件


那你是否知道使用终端打开软件呢?
比如我们先打开cmd命令行
这里我们使用Windows + R 打开运行窗口,输入cmd回车确认


然后就打开了命令行窗口,其实在没有windows这样的桌面应用为主的操作系统的时候,人们使用电脑都是采用这样黑乎乎的方式操作计算机。


我们这里就以打开QQ为例,我们在桌面上通过鼠标右键点击QQ的快捷方式,选择打开文件所在位置就可以找到你自己计算机上QQ启动的软件位置


我这里的QQscLauncher.exe就是我们要找的启动软件了,常识告诉我们在Windows系统上可运行的软件都有一个.exe的后缀名,就像word文件对应.doc,PowerPoint对应.ppt一样(看不到也许是你没有开启后缀名显示)然后我们在命令行进入这个文件夹的路径下

可以发现我们已经进入了这个目录,现在要想在dos窗口运行软件只需一步,在命令行输入刚刚我们要执行的软件的名字 QQscLauncher,然后回车,软件就会像我们在桌面双击一样进行执行


到这里我们就知道怎么通过dos命令行运行软件,那很多人就好奇了,这和我们今天探讨的话题有什么关系呢?不用急看完你就知道了

二、一些“走了后门”的软件

上面我们举了QQ的例子,其实如果熟悉命令行操作的小伙伴应该知道在Windows系统里,我们其实可以通过命令行运行一些“命令”,如我们刚才在切换目录的时候会使用的cd,清屏所使用的cls等,又比如我们可以通过notepad命令代开记事本

那问题出现了,刚才我们为什么能运行QQ,是因为在我们当前目录下存在着这样一个QQscLauncher.exe的程序,那这里我们当前文件夹下又没有记事本.exe之类的运行文件,凭什么可以运行?因为记事本这个windows系统自带的软件"走了后门",而QQ没有
为了验证QQ没有,我们做一个实验,我们向前退一个目录即进入QQ目录中而不是bin目录下,这个目录中并不存在着之前那个QQscLauncher的运行软件,我们还是以输入回车的方式运行看看

发现并没有启动QQ,提示说QQscLauncher未被识别为内部或外部命令,可操作程序或批处理文件。
那notepad呢?


正常启动!
果然notepad“走了后门”

三、怎么走后门——环境变量

我们先给出结论,这种“走后门”的方式其实就是配置环境变量。
这里我就以jdk为例来说明了(方便那些只想知道怎么编程语言环境的人,同样适用于python,go等其他语言)
jdk简单点说把java程序编译运行的工具,也是一系列程序,只不过这一系列程序中我们最多的是使用两个,一个是java.exe;一个是javac.exe.
我们打开下载好的jdk文件夹

进入bin目录下(大多数软件的运行软件都会在根目录下的bin目录下)

果然我们找到了这两个运行软件,其实如果我们不配置环境变量也可以运行java程序,比如我们在这个bin文件夹下创建一个HelloWorld.java,并编写一段java程序

命令行进入这个文件夹内输入编译命令即 javac HelloWorld.java(这一步报错的同学,请确保自己是通过管理员的方式运行的cmd命令行)

然后我们就发现文件夹内多出了一个.class的文件


这就是编译后的产物
然后我们通过java命令加载class文件进jvm运行即 java HelloWorld

然后程序运行打印了Hello World
这就是一个非常简单的运行Java程序的过程,而且我们并没有提前配置环境变量也能运行,那很多小伙伴就奇怪了,既然可以运行那么为啥还要配置环境变量?
那我们就试试如果我们把这个文件移动至其他文件夹呢?比如桌面
我们就又发现出现了和QQ一样的情况,那么至此我们就知道了,当我们在运行文件的目录下执行操作时可以直接执行;可是一旦我们想要在其他位置下同样使用命令行运行软件就需要配置环境变量,换句话说就是系统在你输入命令敲击回车后会先在当前目录下找可执行文件,没找到再去系统配置的环境变量下面找,再没找到才会报未被识别为内部或外部命令,可操作程序或批处理文件。
我们总不可能把所有程序都放在jdk的文件夹下创建编辑运行,因此配置环境变量肯定是少不了的步骤。配置jdk环境变量的问题实际上就是在一个地方存储上一个标记让系统能够知道在你运行像java,javac等这些命令的时候去哪里找这些执行文件
接下来就简单了,上图
首先说明一下我才用的实例是Win10版本其他版本系统操作类似,可能按钮位置不同而已

  • 1.右击此电脑,选择属性
  • 2.点击右侧相关配置里的高级系统设置
  • 3.点击环境变量
  • 4.在下方系统变量里面找到Path
  • 5.双击也可以点击下方编辑也可以,总之进入修改页面
  • 6.点击新建(这里可能有些小伙伴没有这样的界面,只有两行,不用担心都是一样,下面配置的时候在第二行的一大串字符串后面追加就行,记得使用英文分号作分割)
  • 7.新增两行,这里新增的两行其实本来应该是刚才我们下载好的jdk的绝对路径,但是我们这里将jdk的根目录抽取了出来成为一个新的变量 JAVA_HOME ,一个是由于我们后面还需要配置几个地方这样更加方便,二个是当我们之后需要更换目录或者更换jdk版本的时候只需要修改一个地方即可,这一点就和编程当中抽取常量的思想一样了
   %JAVA_HOME%\bin%JAVA_HOME%\jre\bin

  • 8.点击确认保存,继续配置在目录中找的classPath(大小写忽略,如没有请自行创建)
  • 9.追加一段字符串在变量值前
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

  • 10.最后开始配置JAVA_HOME所指向的目录,新建一个名叫JAVA_HOME的变量,值存储jdk的路径(注意这里需要配置自己电脑上jdk的根目录文件夹)
  • 11.到此理论上环境变量配置完成,检验方法就是随便进入一个目录打开命令行输入 java -version的指令,如果配置成功就会显示java的版本

总结

其实看到这里我们应该都清楚了环境变量的作用,给软件走后门,同时之前细心的小伙伴应该已经发现了在环境变量的path里面已经存在了一些目录,这些目录其实就是系统自带的一些软件像我们之前举例使用的notepad软件的位置,系统提前就为这些软件“走了后门”,而事实上对于这些语言的编译器解析器等的环境变量配置大多数情况下我们的集成开发环境会帮我们做好,像Eclipse,IDEA等,这也是很多小伙伴环境变量没有配置成功还可以使用这些IDE编写程序的原因,不过这里博主还是衷心建议编程初学者们在最开始学习时不要使用IDE,用一些像notepad++这种只带缩进的编辑器,然后通过命令行的方式运行的方式编写运行程序,这样有助于你更快的入门熟悉一门语言(对于很多java初学者,很有可能连main函数前的那一串psvm的顺序都会弄错,太习惯于IDE自动生成了),而且也能为之后学习使用linux操作系统打下基础,至此完结,博主功力尚浅,如有错误请评论指出,谢谢

一分钟带你了解配置好一切软件环境变量相关推荐

  1. 配置ADB到Windows环境变量

    adb 命令可以帮我们快速的管理连接的手机设备,例如执行一些安装apk,卸载apk命令,对于熟悉linux系统的人,可以方便的管理手机目录操作手机文件,还可以通过adb命令查看手机的系统日志等操作. ...

  2. linux环境变量配置的方法,Linux环境变量配置方法

    Linux上环境变量配置分为设置永久变量和临时变量两种.环境变量设置方法同时要考虑环境Shell类型,不同类型的SHELL设置临时变量方法和设置永久变量对应的配置文件不同.Linux环境变量本身配置过 ...

  3. 配置jdk1.7的环境变量

    配置jdk1.7的环境变量 找到javac.exe的目录 目录路径 C:\Program Files\Java\jdk1.7.0_17\bin 这个路径要视安装jdk时的情况 复制路径 将 C:\Pr ...

  4. Win10软件环境变量配置(配置原因、配置步骤)

    Win10软件环境变量配置(配置原因.配置步骤) 一.为什么要配置环境变量 环境变量 环境变量:是在操作系统中用来指定操作系统运行环境的一些参数. 环境变量中的path环境变量:当要求系统运行一个程序 ...

  5. SPSS下载安装JDK和tomcat,并配置好相关的环境变量!!

    SPSS下载安装JDK和tomcat,并配置好相关的环境变量!!! 一.下载安装JDK,并配置好环境变量. 1.下载地址:https://www.oracle.com/java/technologie ...

  6. linux配置定时任务的用户环境变量

    linux配置定时任务的用户环境变量   在Linux系统中,执行定时任务时,默认加载的是用户环境变量 ~/.bashrc ,不会加载系统变量,而要使用系统变量,可以用如下方式: # Example ...

  7. shell配置,选择,环境变量修改(ORACLE_HOME,ORACLE_SID),无法使用sqlplus

    ... 零,由于某种误操作,导致用户账户下的shell配置文件丢失被删除 一,你登录到对应主机后,默认使用的那种shell $ echo $SHELL $ pstree $ pstree -up|gr ...

  8. vim配置c语言开发环境变量,gcc配置和vim编程

    在使用vim编译程序的时候,首先应该明白vim自己是不能独自编译程序的,因为它只是一个编辑器,类似于记事本,要用它直接编译程序,还要安装第三方编译软件,这儿我们选择Dev-cpp,因为它包括gcc,我 ...

  9. 批处理bat脚本自动配置java的jdk环境变量

    前言 每当更换电脑或者是重装系统之后,都需要重新配置java系统路径.但是又不想每次都去查配置方法,所以写了个脚本自动配置. 脚本内容 @echo off @echo 第一步 输入要设置的JAVA_H ...

最新文章

  1. APP安全谁之过?爱加密为APP开发者分忧
  2. 07-XML 文件注解开发
  3. PowerDesigner中Stereotype的创建图解
  4. 搞Java的年薪 40W 是什么水平?
  5. P1197-星球大战【并查集,图论】
  6. python 表单中值为空的还需要传入么_牛掰!100行Python,自动动手打造一款多国语言翻译软件...
  7. java连接打印机访问被拒绝_java – 尝试访问spring security中的登录页面时访问被拒绝的异常...
  8. Linear Color Space 渲染时几点注意
  9. 简单的Net::FTP模块的简单应用
  10. QT下信号与槽不在同一个线程中如何connect
  11. 用matlab实现sift算法,sift算法的MATLAB程序
  12. CMake3.19.2下载
  13. 游戏开发者如何有效的编写游戏策划文档
  14. 闲鱼网站实时监控iphone最新发布信息
  15. 千寻的计算机字符,透过《战狼2》影评,细看简单字符处理 | R语千寻
  16. C++ SLT中的容器学习与函数谓词
  17. 【汇智学堂】docker网络管理之一
  18. 北邮数电期末复习——第三章
  19. 第一章 初探Swing
  20. 习题解答_反正切函数的求导

热门文章

  1. 觖决Outlook2003 无法删除规则的问题
  2. 高效团队的特征——笔记与答案
  3. 日常学习的免费网站(学习必备)
  4. OpenGL入门学习(十五)
  5. 紫光展锐六款芯片支持Android 11,SC9863A备受手机厂商青睐
  6. 百度评论中台的设计与探索
  7. 数据仓库Build The Data Warehouse(William H.Inmon)学习笔记 --- 第十章、数据仓库的设计复查要目
  8. linux系统下安装elasticsearch集群踩过的坑
  9. 医院结算系统——数据字典
  10. 字符编码 编码转换 乱码