1.环境变量是一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。
例如path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。我们需要通过设置环境变量,来让jdk完成程序的编译和运行。
2.JAVA_HOME 指向的是JDK的安装目录。
如C:\jdk1.5.0_06,在这路径下你应该能够找到bin、lib等目录。Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。
3.PATH 环境变量是指定命令搜索路径。
比如当在命令行执行javac命令时,在dos模式下,它会先去当前路径寻找javac.exe文件,如果没找到,就会去path环境变量所包含的路径里依次寻找javac.exe文件。
(1) path环境变量值是jdk安装目录下的bin目录。bin目录中包含经可执行文件javac/java/javadoc等,设置PATH变量后,就可以在任何目录下执行javac/java等工具了。
(2) PATH环境变量设置方法:“我的电脑”->右键->属性->高级系统设置->环境变量->找到系统变量中的path。
(3) 测试path环境变量的配置成功与否。在DOS命令行窗口输入“javac”,输出帮助信息即为配置正确。
4.CLASSPATH 环境变量是指定类搜索路径。
比如当执行java命令时,系统就会在classpath的路径下自动寻找相应的.class字节码文件。
classpath环境变量值是存放字节码文件的路径。一般在最前面加一个实心圆点。这个是告诉JDK,搜索CLASS时先查找当前目录的CLASS文件——为什么这样搞,这是由于LINUX的安全机制引起的,LINUX用户很明白,WINDOWS用户就很难理解 (因为WINDOWS默认的搜索顺序是先搜索当前目录的,再搜索系统目录的,再搜索PATH环境变量设定的) 。
-----------------------------------------------------------------------------------------------------------
(1)PATH环境变量的作用
在安装JDK程序之后,在安装目录下的bin目录中会提供一些开发Java程序时必备的工具程序。
对于Java的初学者,建议在命令符模式下使用这些工具程序编译运行Java程序。在Windows 2000/XP操作系统的“开始”菜单中选择“运行”菜单项,输入“cmd”命令来打开命令符模式。
在命令符模式下输入javac命令时,会提示错误信息。
出现上述错误的原因是操作系统在当前目录下找不到javac.exe工具程序,因此需要告诉操作系统应该到哪些目录下尝试寻找,设置PATH环境变量的目的就是为操作系统指定寻找工具程序的目录。
设置PATH变量后,需要重新打开命令符模式才能使设置生效,此时执行javac命令获得成功。
当用户在命令符模式输入javac命令时,操作系统会尝试在指定的PATH变量中寻找指定的工具程序,由于PATH变量中设置了JDK的bin目录的路径,因此操作系统就可以根据这个信息来找到javae.exe工具程序。
提示:在使用javac命令编译Java程序时,如果遏到“javac不是内部或外部命令,也不是可运行的程序或批处理文件”错误提示,其原因就是PATH环境变量未设置或设置错误。
(2)CLASSPATH环境变量的作用
Java执行环境本身就是一个平台,用于运行已编译完成的Java程序(即class字节码文件)。
如果设置PATH变量是为了让操作系统找到指定的工具程序,那么设置CLASSPATH变量的目的就是让Java执行环境找到指定的Java程序对应的class文件以及程序中引用的其他class文件。
JDK在默认情况下会到当前工作目录下(变量值用“.”表示)以及JDK的lib目录下寻找所需的class文件,因此如果Java程序放在这两个目录中,即使不设置CLASSPATH变量执行环境也可以找得到。但是如果Java程序放在其他目录下,运行时则需要设置CLASSPATH变量。
总之,设置CLASSPATH的目的在于通知Java执行环境在哪些目录下可以找到所耍执行的JaVa程序。
一般在安装JDK后,需要设置PATH和CLASSPATH环境变量。如果不设置会对以后使用造成一定的影响。
设置PATH和CLASSPATH环境变量有两种方法:
假设JDK安装路径:
E:\Program Files\Java\jdk1.6.0_05
以下的变量可以设置成用户变量,业可以设置成系统变量。他们的区别只是使用权限的问题而已。
第一种方法:
建立两个变量:
变量名:PATH
变量值:E:\Program Files\Java\jdk1.6.0_05\bin
变量名:CLASSPATH
变量值:.;E:\Program Files\Java\jdk1.6.0_05\lib\tools.jar;E:\Program Files\Java\jdk1.6.0_05\jre\lib\dt.jar
【注意开头是句号加分好】
第二种方法:
建立三个环境变量
变量名:JAVA_HOME
变量值:E:\Program Files\Java\jdk1.6.0_05 注:JDK安装路径
变量名:PATH
变量值:%JAVA_HOME%\bin
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jre\lib\dt.jar
【注意开头是句号加分号】
注:
1.在dos命令模式下执行java、javac等命令,系统会自动在当前目录下面寻找是否有java.exe、javac.exe等程序,然后运行该程序,如果当前目录下面没有这些程序,系统就会去环境变量里的path里变量的路径下一次寻找java.exe、javac.exe等程序,然后运行该程序,如果path里面还没有找到java.exe、javac.exe等程序,dos就会报错,提示java、javac等不是内部或者外部命令,也不是可运行程序或批处理文件。
2.在dos命令下执行java命令时,如果报‘Exception in thread "main" java.lang.NoClassDeFoundError:HelloWorld’,说明classpath设置的不正确。
参考资料:https://blog.csdn.net/huangyuehong914/article/details/80213227 https://www.cnblogs.com/cjm123/p/9508626.html https://zhidao.baidu.com/question/1802096104676938267.html https://blog.csdn.net/weixin_42130581/article/details/95252223 https://www.cnblogs.com/keystone/p/11672566.html