在学习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之间的关系了。
接下来我们看看安装后jdk的目录。
这里bin目录就是Java的可执行文件,包括我们常会用到的java,javac,javadoc开发指令,我们程序的编译执行使用到的指令程序都是在这个目录下的,由于我这里使用的是Java最新的Java11,所以目录结构有些不同,但大致内容是不会有太多改变的,包括Java工具(bin目录下)类库(lib目录下)jvm虚拟机(lib目录下)。
而我们在前面知道了,要想运行一个程序,我们首先要找到它的位置,然后才能运行,而在我们开发程序的编译运行,也是这样的,如果我们通过cmd命令行运行java.exe
的话,我们首先要进到当前的bin目录下,然后运行java.exe,这样会相当麻烦,每次运行都需要找一边程序路径。
Java环境变量的配置
通过上面的一系列了解,终于大概了解了为什么要配置Java的环境变量,我们知道,在编写Java程序时必然要频繁的使用到java bin目录下的Java工具,但每次打开都需要先找路径,实在是麻烦,并且,在使用第三方集成开发环境(IDE)时,编译,运行等也可能会应为找不到路径而报错无法运行,。
然而,我们了解到了,path系统变量,它的作用正好可以解决我们的这个问题,如此,我们应当只需要找到Java的安装路径并找到其bin目录下,将完整的bin目录路径copy一下,然后放到系统的path变量下就可以了,。-
操作步骤
1.在微软下方搜索框搜索系统,并点击进入,然后找到并进入高级系统设置,然后再进入高级系统配置下方的环境变量设置。
2.现在我们就进入到环境变量的配置框了,这里上下两个分别是当前用户的环境变量,和系统的环境变量,有的用户会使用多个用户,用户变量,就是只限于某用户使用的变量设置,系统变量则适用于当前系统的所有用户。
我这里设置的是系统变量,我们编辑path,然后将bin目录路径copy进去,也可以选择使用浏览目录,然后找到对应的bin目录路径,然后一路确定,环境变量就配好了,打开cmd,直接输入Java,Javac等命令,都可以直接运行了。
做到这里,相信很多人都会有疑问,为什么网上,别人配的环境变量都不是这样的,都没这么简单,需要设置什么JAVA_HOME变量之类的,这又是为什么呢
我们在前面知道了配置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