博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于jdk的配置
阅读量:5162 次
发布时间:2019-06-13

本文共 2539 字,大约阅读时间需要 8 分钟。

---恢复内容开始---

刚入门学习java的时候,要么是老师教授的配置环境的方法,要么是通过一些正规书籍上或者一些教学视频上学习到的配置方法。记得刚入门的时候,我们老师教授的方法就是 找到电脑中环境变量这个属性(直接在搜索栏中搜索就能找到)单击后就会出现这样一个对话框:

可以看到有用户变量和系统变量两个分类。那么这两个类有什么区别呢?如果只在用户变量配置的环境,只是在当前用户(即图中的123用户)中有效。如果在系统变量中配置的环境,那么对于此电脑都是有效的。我们选择系统变量来配置。首先在变量栏中找到path这个变量,然后点击编辑会发现这里面已经有一些配置好的信息。那么在path中这些配置好的信息有什么作用呢?作用是  你可以在命令行对话框中(即cmd)在不跳转到软件所在的文件里去使用软件。一般系统就配置了记事本软件的文件位置在path中,所以你可以打开cmd,然后输入notepad,就可以直接打开记事本。如果你的电脑有安装网易云音乐,你可以在cmd中输入cloudmusic,看看是不是能够打开网易云音乐。我想应该是不可以。你可以把网易云音乐的文件夹路径添加到path中就可以在cmd对话框中在不用跳转到软件所在文件夹地址的情况下运行网易云音乐了。

                                                       

我在path中配置了QQ的文件夹路径(上图中最后一栏),就可以通过在cmd对话框中输入qq启动QQ了。所以配置path 就是为了不用每次跳转到你要运行软件的文件夹地址去才能启动软件。那么在path中我们应该配置jdk的什么信息呢?一个是  jdk目录下bin文件的绝对路径(我的电脑上的该路径是 C:\Program Files\Java\jdk1.8.0_162\bin)另一个是 jre目录下bin文件的绝对路径(我的电脑上的该路径是  C:\Program Files\Java\jre1.8.0_162\bin),当时我的老师就只让我们配置了这样一个信息就行了。然后就是在cmd的对话框中先输入javac,出现一大段文字就说明 可以编译 你写的java代码了,然后在输入java 一大段文字 就说明你可以运行你所写的java代码了。

那为什么是添加这两个文件路径到path中呢?  打开添加的路径所指的这两个文件夹,你会发现其中一个文件夹中包含了很多.exe文件(这些都是一些可执行文件,单击就可以运行)另外一个包含了很多.dll文件(百度了一下  这些文件是帮助.exe文件运行的 )。初学阶段我们只了解一下 javac.exe 和 java.exe  这两个,前面提到在cmd对话框中输入javac 编译java文件,输入java 运行java代码,再结合前面提到的 输入 notepad 就可以启动 记事本 输入qq就可以启动QQ,就知道javac.exe 这个程序就是用来编译java文件的,java.exe这个程序就是来运行java代码的。注意:在cmd对话框编译和运行java时,最好切换到你要编译的那个java文件目录下才可以运行java代码。

 

老师就教我们配置了一个path的信息就行了。然而一些书籍或者教学视频还配置了另外两个信息。他们分别是JAVA_HOME 和 CLASSPATH。一般配置的套路是:

path = %JAVA_HOME%\bin   path = %JAVA_HOME%\jre\bin    JAVA_HOME = C:\Program Files\Java\jdk1.8.0_162(你的电脑上安装的jdk的路径)

CLASSPATH =  ,;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;   会发现多次出现了%JAVA_HOME%  这里其实就相当于引用 C:\Program Files\Java\jdk1.8.0_162

 

关于配置JAVA_HOME的原因 有两点(其实我也是看了别人的博客才知道的)。

第一点 :  其实是为了方便修改。当你的电脑中装了很多个版本的jdk时,比如说你现在的环境中配置的是jdk1.6,那么如果现在你向使用jdk1.8了,你就必须path中的两项信息和CLASSPATH中的一项信息,如果现在你配置了JAVA_HOME 这个变量你就可以只改它一项的值就可以了。

第二点 :  这里先引出一个问题吧 ,上面说到JAVA_HOME 其实就相当于  C:\Program Files\Java\jdk1.8.0_162 这个变量的变量名而已,那为什么不能换个名字呢?不能哟。原因是 在我们使用的一些软件中比如eclipse tomcat 要通过这个变量名 找到jdk的安装路径(但是我的很多同学按照老师的方法配置jdk并没有配置JAVA_HOME,也能使用eclipse。 所以这其中的奥秘 要我深入学习了还能揭晓)。

 

关于配置CLASSPATH的原因,其实我到至今都没有搞懂。网上的一种回答是 将你要运行的class文件的路径添加到这个变量里,这样你就可以在cmd对话框中在不同切换到你要运行的class文件的路径下去运行java代码了。我实践了这样一种说法,是不能运行的(你也可以实践一把,毕竟实践出真知嘛)。还有一种回答就是 将你写代码时 使用的 jdk中没有的jar包的路径填写在这个变量里。刚好我写了一个程序,需要使用到jdk没有的jar包 (jsoup-1.8.1.jar  这是一个写java爬虫时会用到的包),在没有把它的保存路径添加在CLASSPATH里之前,我使用javac 编译我写好的java代码,结果编译是通不过的,就是使用的jsoup-1.8.1.jar这个包里的类,函数是找不到的。

 

然后 在把jsoup-1.8.1.jar存放的地址添加到CLASSPATH中后就可以编译成功了。

 

 

运行编译后的文件也是可以的。

 

至于为什么会推荐在CLASSPATH中填写,;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar; 我还没有弄懂。

---恢复内容结束---

转载于:https://www.cnblogs.com/zhangchenwei/p/11054013.html

你可能感兴趣的文章
MySQL备份之【mydumper 学习】
查看>>
CentOS 下 maven 安装
查看>>
质量保障
查看>>
mac 火狐 下载 任何文件都是失败
查看>>
Run Shell Commands in Python
查看>>
数组与泛型(2)
查看>>
20145322 Exp5 Adobe阅读器漏洞攻击
查看>>
使用System.out.print/prilntln() 输出时存在的问题
查看>>
angular-messages.js信息验证的使用
查看>>
HDU ACM 2844 Coins (多重背包)----------------01背包,完全背包,多重背包模板
查看>>
Docker 命令大全
查看>>
Linux c 根据socket套接字获取当前监听的端口
查看>>
scala 16 包
查看>>
黑马程序员------oc中的基本框架Foundation
查看>>
springboot集成schedule(深度理解)
查看>>
人工智能学习 第一课
查看>>
AT3576 Popping Balls
查看>>
CF1088F Ehab and a weird weight formula
查看>>
[SCOI2012]喵星球上的点名——堪称十种方法做的题
查看>>
ios 友盟统计
查看>>