说到java开发环境变量的配置,大家应该都很熟悉,无非是安装好JDK以后配置系统环境变量 path
,以及 CLASS_PATH
,但是对于小白来讲,刚开始学习,是否真的知道为什么要这样配置?笔者最近在复习java相关的知识,想起刚开始学习java的时候根据教程一步步搭建好开发环境,当时是知其然不知其所以然,google了一下,发现大多是介绍如何配置的,还是没有解决笔者最初的问题。现在对于这个问题有了一定的了解,故写下此文,记录下当初的疑惑,也希望能为刚入门的朋友们解惑。
JRE(Java Runtime Environment)是指Java运行环境,就像图片文件只能由图形程序打开,音频文件只能由影音程序打开一样,不同的编程语言所开发出来的程序有不同的运行环境,JRE就是Java程序运行的载体。JRE中除了一些java的标准类库函数以外,值得一说的就是Java虚拟机了,为了方便大家理解,后面结合JDK再来说明,暂且记下JRE当中有一个叫Java虚拟机的东西存在就可以了。
JDK(Java Development Kit)顾名思义,java开发工具,是连接java程序员与计算机的桥梁。用java语法编写好的源代码文件,交由JDK编译字节码,从而使得java源代码能够在Java虚拟机(JVM)中运行。
终于说到JVM了,JVM(Java Virtual Machine)能够认识JDK编译出来的字节码,并且将字节码转换成各个平台都能理解的形式,由此,各大平台就可以不加修改的执行这段源代码文件了(PS:Java的跨平台性就是得益于JVM的存在,JVM屏蔽与具体操作系统相关的信息,使得java程序可以在各个平台执行,通俗的讲,就相当于不同国家的人进行交流,而JVM就是交流中精通多国语言的高级翻译员)。
JRE和JDK都可以在Oracle的官网上下载到,如果仅仅想要运行别人写好的java程序,只下载安装JRE就可以了,但是如果要自己编写程序就要安装JDK了,由于编写程序还要进行测试需要jre,所以在安装JDK的过程中会弹出一个对话框询问是否需要安装jre。看到这里大家应该明白了,JDK当中其实是附带了完整的JRE的,而JRE中又有java程序运行必备的JVM,所以在安装工具包的时候只要找到JDK下载安装就可以编写和调试运行java程序了。
JDK安装目录结构
如上图就是我的jdk安装目录,这里只介绍相关的目录,想了解更多关于目录结构可以自行google。途中可以看到标注了三个文件夹,其中 src.zip
是Java所有源码的压缩包; jre
就是JDK附带安装的运行环境;还用一个 lib
目录里有两个文件 dt.jar
(是关于运行环境的类库,主要是swing的包)和 tools.jar
(是关于一些工具的类库)大家注意一下,这两个文件也是运行时不可少的,重点来了,就是 bin
了,其中就是java开发工具的可执行文件,什么意思,就是说可以在命令行运行相关的命令来执行操作,如果是windows系统,打开会看到很多exe文件,比如 javac.exe
, java.exe
等等,这两个命令分别是编译源代码和启动JVM运行字节码文件的命令,我们实际操作看一下:
大家可以看到,开始的时候我们所在的目录是个人文件夹(cmd打开时默认路径),这时候执行 java
命令的时候报错了,我们需要用 cd
命令进入到 java.exe
所在的目录也就是 bin
目录才能执行这条命令,这也就是为什么我们需要配置环境变量的原因了!
1.配置Path变量
首先让我们进入环境变量的配置界面:右击计算机->属性->高级系统设置->环境变量
,现在看到的就是这样的界面了:在配置环境变量之前,我们需要知道windows系统环境变量当中是有 Path
这一变量的,path变量的值就是一些路径,我们在命令行输入指令时,windows首先会在当前路径查找执行文件,其次会在path配置的路径中查找,如果还没有找到就会像上面一样报错,由于 Path
默认的值是没有 bin
目录的路径的,所以当我们只能先进入到 bin
目录才能运行java
命令,如果每次运行命令都要先进入 bin
会很麻烦,而且效率也低,现在我们知道要在任何路径下都能运行 bin
的文件只需要在 Path
的值里面加上 bin
所在的路径就行了,像我的就是 C:\Software\java\jdk1.8.0_74\bin
要注意的是,path的值里面路径与路径之间要用半角;
隔开,在配置的时候最好使用全英文输入。这个时候不管在哪个路径运行 java
的时候都不会报错了。
2.配置ClassPath变量
现在配置好 Path
变量了,我们来写个HolleWorld来运行一下看看,执行 javac HelloWorld.java
之后大家会发现在当前路径下产生了一个与java文件同名的class文件,
这就是编译器编译出来的字节码文件,这时候执行 java HelloWorld
就会看到‘Hello World !’就会出现在cmd界面了,这是因为JVM通过 CLASS_PATH
的值来寻找这种class文件,如果找到了就会将它转换成windows能够理解的形式来运行我们的程序了。由于1.5版本以后的JDK的智能性,如果没有配置 CLASS_PATH
则会自动到当前路径寻找class文件,如果配置了则会从 CLASS_PATH
的路径中找。而且使用Java的编译和运行工具时,系统可以自动加载之前提到 lib
目录下的 dt.jar
和tools.jar
文件中的Java类,因此不再需要设置classpath环境变量了。但是jdk1.5之前的版本并没有这么智能化,所以还需要手动去配置classpath变量如下:.;C:\Software\java\jdk1.8.0_74\lib\dt.jar;C:\Software\java\jdk1.8.0_74\lib\tools.jar
,要注意前面的 .;
这是用来寻找当前路径下class文件的,因为改动了classpath的值,所以也要加上寻找class文件的路径。那为什么网上还有很多教程都说要这样配置呢,可能是因为之前保留的习惯吧,而且配置一下也并无不妥,不过今天来讲,如果要使用自己封装的包,那么就要配置classpath变量,否则不配置也是可以的。
3.配置JAVA_HOME变量
看到这里,相信你已经配置好 Path
和 CLASS_PATH
变量了,现在配置 JAVA_HOME
变量会使得以后的工作简单很多,我们将 JAVA_HOME
变量配置如下:C:\Software\java\jdk1.8.0_74
(也就是jdk的安装目录),这样配置以后,我们就可以 将Path
和 CLASS_PATH
变量路径中的 C:\Software\java\jdk1.8.0_74
改为 %JAVA_HOME%
了,这样一来,即使以后重新安装jdk改变了安装路径,我们只需要去更改 JAVA_HOME
中的路径就行了,而且以后也会使用到 JAVA_HOME
这个变量的。
以上就是我对java开发环境变量配置的理解了,希望可以帮到有着跟我当时一样的疑惑的朋友们,第一次写手记,如有不当之处,各路大神看到还望不吝赐教,谢谢~
热门评论
表示小白学到了很多,, 希望你这样的文章多发点。谢谢
我的配置有点问题,能帮帮我吗
值得鼓励 希望楼主多发点意见