java环境变量的配置
来源:互联网 发布:石家庄软件开发吧 编辑:程序博客网 时间:2024/06/01 08:12
最近在配置环境变量时遇到了不少问题,抽个空就总结了一下。
首先,说明一下配置的步骤:右击我的电脑->属性->(左侧点击) 高级系统设置->(上面点击) 高级->环境变量(以Win7为例,不知道怎么添加图片,只能用文字描述,请各位见谅)
(1)JAVA_HOME:在系统变量中新建(末尾不要添加“;”,这个路径会被其他变量引用)
变量名:JAVA_HOME
变量值:E:\Develop\JDK_1.8_64
(2)Path:可以在系统变量中找到path,双击
在变量值后添加:%JAVA_HOME%\bin;
(3)CLASSPATH:也是在系统变量中新建
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
(这里的 “.;”与末尾添加”;”的区别只是查找顺序的区别,后面会有介绍 )
下面解释一下各个环境变量配置的意义:
JAVA_HOME:顾名思义,就是java的安装目录,也就是JDK的安装目录。JDK可以安装在任意目录,例如,我的JDK安装在E:\Develop\JDK_1.8_64;所以我们配置环境变量时,可以新建一个变量名为JAVA_HOME,值为E:\Develop\JDK_1.8_64。至于JAVA_HOME的作用,应该是为了方便修改使用的JDK。当我们安装了多个版本JDK的时候,为了方便改变当前使用的JDK,只用修改JAVA_HOME的值就可以了,这样,path和classpath中的值都相应的修改了(前提是path和classpath的配置方式是用引用JAVA_HOME的路径,在下面介绍path和classpath的配置方式就明白了)。
Path:环境变量path可以这样理解,就是把.exe文件的目录添加到path中,这样,我们可以在任何路径,通过命令行启动这个程序。比如,我们把QQ.exe文件所在的目录添加到path中后,我们可以在黑窗口中,通过命令行,在任何路径下使用 QQ 命令启动QQ.exe;所以我们在配置path时,主要是为了能在任何路径下通过命令行启动java.exe和javac.exe等可执行文件,而这些文件,都放在JDK中的bin目录中,因此,我们配置环境变量path时,需要把bin目录添加到path中。在配置path时,我们一般不直接把带盘符的这种路径配到里面,而是采用引用路径的方式。
第一种方式:把 E:\Develop\JDK_1.8_64\bin;添加到path中(不推荐)
第二种方式:把 %JAVA_HOME%\bin;添加到path中;这种方式的前提是已经配好了JAVA_HOME;用%JAVA_HOME%表示引用JAVA_HOME配置的路径。用这种方式配置的,以后如果想修改使用的JDK的版本,只需要把JAVA_HOME设置成另一个版本JDK的安装目录就行了。
CLASSPATH:用于查找.class文件的目录。当我们在黑窗口输入java HelloWorld 命令时,系统会从CLASSPATH配的路径下找HelloWorld.class文件,并启动main方法。那么,我们在配置时,一般是这样配置的: CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%lib\tools.jar; 前面的.表示当前目录,也就是执行java命令时进入的目录。而dt.jar和tools.jar是javase的一些常见的类,具体是哪些类,反编译看看就知道了。至于作用,就是我们可以在我们的代码中使用这些类,一般需要导包,如果jar文件中的.class不带包名,不需要导包就可以直接用。
当前路径:就是执行命令的路径。比如我们在d盘的Develop目录下运行Hello.class文件,我们用命令 D:\Develop java Hello;此时,当前路径就是D:\Develop;在配置环境变量时,”.”表示当前路径。
配置环境变量时注意的一些小细节
(1)在这些环境变量的配置方式中,在结尾加 “;”与不加”;”的区别:结尾加”;”,会将当前路径添加到末尾;不加”;”则不会默认添加当前路径。也就是说,末尾加”;”,相当于添加了“ . ;”路径的效果。个人猜测,查找路径时,是先用“;”将路径中的字符串分割,再依次遍历分割得到的字符数组;末尾是“;”,会得到最后面值为null的一个字符串,null与.的效果相同。所以,不配置时,会有一个默认值null,也就是当前路径。
(2)通过命令行运行javac.exe和java.exe是按照顺序查找path和classpath中配置的路径,一旦找到,就执行,并且不再往后查找。所以,在配置JDK是,一般把JDK的bin添加到path的最前面。否则,可能出现这种情况,比如我的电脑安装了JDK1.6和JDK1.8,path配置为:E:\Develop\JDK_1.6_64\jre;E:\Develop\JDK_1.8_64\bin 当我们用javac命令编译java文件时,会从我配置的path路径中查找javac.exe文件,由于E:\Develop\JDK_1.6_64\jre中没有javac.exe,会往后继续查找,结果找到E:\Develop\JDK_1.8_64\bin中的javac.exe编译,得到1.8版本的.class文件;然后我们通过java命令运行此.class文件时,同样会先从我们的path路径中查找java.exe,结果会找到E:\Develop\JDK_1.6_64\jre中的java.exe;就会出现1.6版本的java.exe运行1.8版本的.class文件,导致无法运行。因此,在配置path时,最好把JDK的bin配置在path的最前面,这样,在查找java.exe和javac.exe时,都是同一个bin目录下的,就不会出现低版本的java.exe运行高版本的.class文件。
最后说明一下,这些只是个人的理解,并不权威,希望各位能积极指正其中的错误之处,同时,我也希望此博客能给各位带来一点帮助。
- JAVA的环境变量配置
- JAVA的环境变量配置
- JAVA的环境变量配置
- java的环境变量配置
- java环境变量的配置
- JAVA环境变量的配置
- java环境变量的配置
- java环境变量的配置
- java环境变量的配置
- java环境变量的配置
- JAVA环境变量的配置
- Java 环境变量的配置
- java 环境变量的配置
- JAVA环境变量的配置
- java环境变量的配置
- Java的环境变量配置
- Java环境变量的配置
- JAVA环境变量的配置
- 基于rails的schedule网站开发(17):动态流
- 使用web ssh 登陆设备---gateone开发之旅
- deb,rpm格式
- django 快速搭建blog
- fedora 远程windows桌面
- java环境变量的配置
- 401.2 登录方法 尚未确定
- Source Insight
- 进军服务器了,转点mysql操作命令
- CESHI
- iOS OC(四) 字符串NSString 可变数组NSMutableArray 不可变数组NSArray 数值对象类NSNumber NSValue 数值对象类NSNumber
- Java 利用 JDBC 连接 Sqlsever2012 实现 增删改查
- python之路之猜数游戏
- Sql使用日常总结