【知识向】——关于环境变量与环境变量的配置

在学习Java的过程中,我们的一步都是下载Javajdk然后配置环境变量,而在查找相关的文章时,大多都是关于如何配置环境变量,对于为什么要配置,环境变量具体是什么,都模棱两可不是十分详细。那么我们为什么要配置环境变量,环境变量又是什么呢?它又是如何使用,做和作用的呢?就这个问题,在这里简记下关于环境变量与Java环境变量配置的了解过程。


  • 环境变量
    首先我们要明白环境变量到底是什么,有什么作用?

环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。

环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。

环境变量的主要作用

  • 设置参数

环境变量相当于给系统或用户程序设置参数,具体作用与具体设置的环境变量有关:

path环境变量,也是我们接触最为常见的环境变量,path环境变量的作用就是告诉系统,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到哪些目录下去寻找。而我们通常情况下配置的path变量,就是这个目录的完整路径。

这样,我们就很容易明白了,愿来path环境变量是为了方便我们在运行程序时的使用的,我们都知道,在使用doc来运行程序或打开某个文件时,我们必须键入某程序的完整路径,才能运行它,而只要我们配置了环境变量,那么我们就可以省略这一步,系统会自动到我们事先设置好的目录寻找对应的程序运行。方便人们的使用。

再如tc或vc++中,set include=path1;path2; 是告诉编译程序到哪里去找.h类型的文件;当然不仅仅是指定什么路径,还有其它的作用的,如set dircmd=/4 设置一个环境变量的作用是在使用dir命令时会把/4作为缺省的参数添加到你的dir命令之后,就像你的每个命令都加了/4参数,它实际上是给命令解释程序command设置的一个环境变量,并且是给dir这个内部命令设置的。

  • 软件共用

很多朋友会在自己的计算机上安装双系统,例如C盘安装Windows XP,D盘安装Windows 7。可是某些软件往往只在Windows XP系统中安装,Windows 7系统中是无法正常使用的,比较麻烦却有效的方法是再安装一遍。当我们了解了环境变量中的用途后就可以很好解决双系统的软件共用问题。

  • 系统运行

为什么在Windows XP中安装了的软件在Windows 7下无法运行呢(绿色软件除外)?原因是安装软件时往往须要向系统目录中复制某些文件,而使用另外一个系统时会由于缺少这些文件而无法运行。因此,我们可以通过设置环境变量的方法来解决这个问题。

参考:
环境变量-百科

现在,我们大致明白了一些关于环境变量的信息,并其也知道了关于path环境变量的主要作用和使用方式,到这里,也大致明白了为什么java要配置path环境变量了。


  • Java jdk(Java Development kit)的构成
    我们知道,配置环境变量,就是为了java jdk服务的。为了稍详细的理解环境变量的配置和使用,所以我们有必要了解一下Java jdk的构成。

JDK是 Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

  • Java运行环境(Java runtime environment,JRE)
    就是由Java虚拟机(Java virtual machine,JVM)以及一些标准函数库组成。

所以在这里,我们就知道了JDK,JRE,JVM之间的关系了。

2019-4-1-01.png

接下来我们看看安装后jdk的目录。


2019-4-1-02.png

这里bin目录就是Java的可执行文件,包括我们常会用到的java,javac,javadoc开发指令,我们程序的编译执行使用到的指令程序都是在这个目录下的,由于我这里使用的是Java最新的Java11,所以目录结构有些不同,但大致内容是不会有太多改变的,包括Java工具(bin目录下)类库(lib目录下)jvm虚拟机(lib目录下)。


2019-4-1-03.png

而我们在前面知道了,要想运行一个程序,我们首先要找到它的位置,然后才能运行,而在我们开发程序的编译运行,也是这样的,如果我们通过cmd命令行运行java.exe
的话,我们首先要进到当前的bin目录下,然后运行java.exe,这样会相当麻烦,每次运行都需要找一边程序路径。


2019-4-1-04.png

  • Java环境变量的配置
    通过上面的一系列了解,终于大概了解了为什么要配置Java的环境变量,我们知道,在编写Java程序时必然要频繁的使用到java bin目录下的Java工具,但每次打开都需要先找路径,实在是麻烦,并且,在使用第三方集成开发环境(IDE)时,编译,运行等也可能会应为找不到路径而报错无法运行,。
    然而,我们了解到了,path系统变量,它的作用正好可以解决我们的这个问题,如此,我们应当只需要找到Java的安装路径并找到其bin目录下,将完整的bin目录路径copy一下,然后放到系统的path变量下就可以了,。

  • 操作步骤
    1.在微软下方搜索框搜索系统,并点击进入,然后找到并进入高级系统设置,然后再进入高级系统配置下方的环境变量设置。

    2019-4-1-05.png

2019-4-1-06.png
2019-4-1-07.png

2.现在我们就进入到环境变量的配置框了,这里上下两个分别是当前用户的环境变量,和系统的环境变量,有的用户会使用多个用户,用户变量,就是只限于某用户使用的变量设置,系统变量则适用于当前系统的所有用户。

我这里设置的是系统变量,我们编辑path,然后将bin目录路径copy进去,也可以选择使用浏览目录,然后找到对应的bin目录路径,然后一路确定,环境变量就配好了,打开cmd,直接输入Java,Javac等命令,都可以直接运行了。

2019-4-1-08.png
2019-4-1-11.png

做到这里,相信很多人都会有疑问,为什么网上,别人配的环境变量都不是这样的,都没这么简单,需要设置什么JAVA_HOME变量之类的,这又是为什么呢

2019-4-1-10.png

2019-4-1-09.png

我们在前面知道了配置path变量的原理,只需要将完整的路径导入过来就可以了。而为什么几乎所有的Java环境变量配置的教程都不是这么简单的呢,需要单独定义变量,且变量固定的JAVA_HOME变量。

我们通过观察发现,其实JAVA_HOME的值就是Java bin目录的上一级目录,即jdk的安装目录,而下面的path则使用‘%%’引用其值然后再加上\bin;这说明,其实原理上还是一样的使用bin目录的完整路径。那么这里到底为什么要大费周折单独将jdk安装路径抽出单独定义成一个变量呢,还是一个名称固定的变量?

最后通过查询,学习,终于了解到,这是因为在之后的Javaweb学习过程中,搭建和使用tomcat服务器,其需要访问到相关目录下的某些文件或资源,具体我暂时也不太清楚,而tomcat所设置的访问变量就是JAVA_HOME,是通过这个变量来访问jdk路径的。因为每个人安装jdk的位置都不同,所以想要调用,只能通过变量赋值的方式,变量由他们顶哟,由我们赋值,就解决了这个问题,相信不知tomca,其他的一些第三方资源应当也是通过这种方式来访问某些路径的资源的。所以在编程人员学习Java过程配置环境变量时,一般都时使用变量赋值的形式来配置环境变量的。当然如果你只是简单的使用,不会使用到javaweb方面的使用,完全可以不用这样,只需要简单的将路径导入就行。


更新时间:
2019-4-1
16:38

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容