系统变量path和java中的三个环境变量的作用及其配置

先理解一下系统变量path和classpath的作用

出处:记一次解决cmd中执行java提示"找不到或无法加载主类"的问题

path:可执行命令的搜索路径,在该路径下搜索可以运行的程序或批处理文件。
  命令行中输入一个命令,则会在path配置的目录中查找该命令,如果存在则调用该程序运行,如果不存在则 提示“ ‘XXX’ 不是内部或外部命令,也不是可运行的程序或批处理文件。”
  如果要想在cmd中执行java,则需要把java.exe 配置在path系统变量中。由于cmd会搜索path中目录下的文件,因此在实际配置的时候,只需要把…/jre/bin 配置到path中即可。这样,在执行java时,操作系统便会自动在…/jre/bin 目录下搜索java.exe 可执行程序了。

classpath: 类文件(.class/.jar)的存储路径。
  java 命令执行时,会读取classpath中配置的目录,然后在该目录下去搜索将要执行的.class文件。如果未搜索到,则会报“找不到或无法加载主类”错误,如果搜索到,则继续运行。
  例如:执行命令 java Hello;
    则java程序会去在classpath配置的所有目录和文件中取搜索Hello.class文件,找到之后会把该class文件加载到jvm中,为后面的运行做准备。
  classpath这个系统变量只是为java使用的,其他程序不会使用该变量。

如上所说,java执行时,会在classpath中搜索 XXX.class 文件,如果找不到则报出"找不到或无法加载主类"的错误。那么在cmd运行的时候,我们会随意的在某个目录下面javac编译,然后java运行程序,那么,该目录未配置到classpath中,java程序又是如何找到该目录的呢?

还记得配置classpath的时候,有一个".;"的配置项吗?其代表的就是执行java命令是的所在目录,也即是当前目录。这样即是把当前目录加入了classpath,因此java执行的时候,会在当前目录中搜索XXX.class 的。

注意,当配置 .; 的时候,一定要注意前面是不是还有其他配置。classpath中多个目录要以;分割,而这里的".“是一个配置项,代表的当前目录,所以,如果”.“前面有其他的配置项,则前面同样需要加入”;"。
  例如:
    "."前面有其他配置项,则这样配: …\bin;.;%JAVA_HOME%\bin…
    “.“前面无其他配置项(也即是classpath是以.开始的),则这样配: .;%JAVA_HOME%\bin…
  注意,在配置的时候一定要确定到底是”;.;“还是”.;”, 否则如果配成…\bin.;%JAVA_HOME%\bin…则就会发生:能够javac编译成功,但是java却无法执行成功的错误。

另:用户变量会覆盖掉系统变量

环境变量不区分大小写

设置环境变量

出处: Java环境变量中classpath是必须配置吗

在java 中需要设置三个环境变量(1.5之后不用再设置classpath了,但个人强烈建议继续设置以保证向下兼用问题)
JDK安装完成之后我们来设置环境变量:右击“我的电脑”,选择“属性”,选择“高级”标签,进入环境变量设置,分别设置如下三个环境变量:

(1)配置path变量:

为什么要配置path变量
因为电脑系统将根据该变量的值找到java编程中需要的一些程序,比如javac.exe、java.exe、javah.exe等等,其中javac.exe程序是用于编译java源代码,java.exe程序是用于执行后缀为class的代码。

如何配置path变量?
path变量一般电脑系统都已经创建好了,所以不用新建该变量,只需在系统变量里选中到path变量,点击“选择” ->“编辑",需要注意的是,不要随便删除方框里原有的其他path值,而是先在那一大串值之后,添加一个分号,再把C:\Program Files\Java\jdk1.5.0_17\bin填上去。下面列出其键值对:
变量名: PATH(不区分大小写但建议使用大写)
变量值: C:\Program Files\Java\jdk1.5.0_17\bin

(2)配置classpath变量:

为什么要配置classpath变量
配置classpath变量,才能使得java解释器知道到哪里去找标准类库,这些标准类库是别人已经写好了的,我们只管使用。比如我们常用到java.lang包中的类,在配置classpath变量后被设为默认导入,所以在写程序时就不用import这个包了。那么这些标准类库在哪呢?在以JDK的lib目录下以jar为后缀的文件中:一个是dt.jar,一个是tools.jar,这两个jar包都位于C:/jdk1.6.0/lib目录下,所以通常我们都会把这两个jar包加到我们的classpath环境变量的值为:.; C:\Program Files\Java\jdk1.5.0_17\lib\tools.jar; C:\Program Files\Java\jdk1.5.0_17\lib\dt.jar;

如何配置classpath变量?
在系统环境变量那一栏中点击新建classpath ,具体过程省略,下面只列出其键值对:
变量名: CLASSPATH
变量值: .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;
(注意,CLASSPATH最前面是有个 “.”的,表示当前目录。用两个%包围JAVA_HOME这个变量的意思是引用变量的值,当然如果你不想这样做,也可以这样配置classpath的值为:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar; 也就是用JAVA_HOME变量的值替换%JAVA_HOME%);

(3)配置JAVA_HOME变量:

为什么要配置classpath环境变量
一是为了方便引用,比如,JDK安装在C:\Program Files\Java\jdk1.5.0_17目录里,则设置JAVA_HOME为该目录路径, 那么以后要使用这个路径的时候, 只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串; 二则是归一原则, 当JDK路径改变的时候, 仅需更改JAVA_HOME的变量值即可, 否则,就要更改任何用绝对路径引用JDK目录的文档, 要是万一没有改全, 某个程序找不到JDK, 后果是可想而知的----系统崩溃! 三则是第三方软件会引用约定好的JAVA_HOME变量, 不然, 你不能正常使用该软件。

如何配置JAVA_HOME变量?
在系统环境变量那一栏中点击新建JAVA_HOME (JAVA_HOME指向的是JDK的安装路径),变量的值实际上是JDK安装路径的根目录。具体过程省略,下面只列出其键值对:
变量名: JAVA_HOME
变量值:C:\Program Files\Java\jdk1.5.0_17
测试JDK是否安装成功
在运行中输入cmd
然后输入java –version
看看是否能显示出您所配置的java版本

声明:
本博客所有内容来源于网络、书籍、和各类手册。

内容均为非盈利,旨为方便查询、总结备份、开源分享。

部分转载内容均有注明出处,如有侵权请告知,马上删除。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值