[原创] JDK(JRE)环境变量配置原理 --费元星

已经配置了很多次jdk了,每次都是安装网上的教程配的,今天突然想了解了解原理了,整理一下!

  参考贴(

  http://blog.csdn.net/wkupaochuan/article/details/7462180(讲解的不全)

  http://jingyan.baidu.com/article/bea41d435bc695b4c41be648.html(百度经验,里面有详细的配置过程,后面我就不说了)

通常在安装JDK过后需要配置两个环境变量:PATHCLASSPATH(由于windows平台对系统变量的大小写没有要求,所以大小写都可以,但是Linux系统中只能用大写)。

也许有人说还有一个JAVA_HOME, 其实这个变量的设置就是起到中转的作用吧,JAVA_HOME指向我们的JDK安装目录,自定义这个变量的目的大概是让我们比较方便的使用JDK安装目录吧(个人理解),所以JAVA_HOME可有可无。

要讲PATH和CLASSPATH这两个系统变量,就得先看一下JDK的根目录下面的几个文件夹了:

其中主要的就是bin、jre、lib三个文件夹了,

bin:该路径下存放了JDK的各种工具命令,常用 的有javac、java等;

jre:该路径下安装的就是运行java程序所必须的JRE环境;

lib:该路径下存放的是JDK工具 命令的实际执行代码程序,该文件夹下的dt.jar 和tools.jar是工具命令的类文件(.class);

   下面我们就来讲一下PATH和CLASSPATH这两个系统变量:

首先编译和运行java程序需要两步骤:

1、将.java源文件编译成.class字节码;

2、解释执行与平台无关的字节码程序;

这两步分别用到javac 和java这两个命令。

当我们运行这两个命令的时候,计算机是如何找到这两个命令的呢?也就是如何找到这两个命令的路径的?所以我们就要为这样的工具命令设置路径,让计算机能够自己找到他们。windows操作系统都是根据系统变量PATH来查找命令的,所以我们就将工具命令(bin目录)的路径加到path路径上面,计算机就能找到了(将D:\Java\jdk1.7.0_01\bin加入到path环境变量中):

环境变量中不同路径之间用分号隔开,Linux下面用冒号隔开。

这样的话在dos环境里面运行java、javac等工具命令时,计算机就能自动找到命令所在路径并执行了。

接下来计算机根据path里面的路径找到命令了,但是这个路径(也就是bin目录)存放的是工具命令的一个引用(快捷方式吧),具体的工具命令程序是保存在lib目录下的,所以这个时候计算机单单找到工具命令还不行,还要找到它的执行体,而这个执行体都是一些java的经过编译后的.class文件(lib目录下的dt.jar和tools.jar),所以我们要设置一个环境变量,将这两个文件(即类包dt.jar和tools.jar)路径放到 环境变量中,以便于计算机能找到执行。

而对于类文件,java设置了一个环境变量CLASSPATH专门来指向类文件,计算机根据这个环境变量下面的路径,就能找到相对应的类文件并执行了。所以jdk安装后,要把D:\Java\jdk1.7.0_01\lib\dt.jar;D:\Java\jdk1.7.0_01\lib\tools.jar两个路径加入到CLASSPATH中。

而我们通常设置的CLASSPATH路径前面还有一个点,即完整的CLASSPATH是              .;D:\Java\jdk1.7.0_01\lib\dt.jar;D:\Java\jdk1.7.0_01\lib\tools.jar

 这个点是用来干什么的呢?(假设有一个已经编译好了的java文件Hello.class)

我们执行这个文件  java Hello   这个时候JRE是到哪里搜索这个文件呢?可能有人说当前路径下搜索啊!这是对的,是在当前路径下搜索,但是JDK1.4及之前的版本没有设计这个功能,这意味着即使当前路径包含着Hello.class这个文件,在执行 java Hello  这个命令时,系统也找不到Hello这个类。

所以在JDK1.4及之前的版本中需要在ClassPATH环境变量中添加一个点(.),用来告诉JRE需要在当前路径下搜索JAVA类。所以CLASSPATH也就有了上面的路径  (.;D:\Java\jdk1.7.0_01\lib\dt.jar;D:\Java\jdk1.7.0_01\lib\tools.jar)。

总之,classPATH这个环境变量就是用来寻找类的。把相应的类路径添加进去,系统就能自动检索到并执行。

 在JDK1.5及之后发布的版本中,可以不用设置CLASSPATH这个环境变量了,因为JRE比以前更智能了,它会自动搜索当前路径下的类文件,而且在使用java的编译和运行工具时,系统也可以自动加载dt.jar和tools.jar文件中的java类,因此不再需要设置CLASSPATH环境变量。

但是当我们使用JDK1.5及之后发布的版本时,如果设置了CLASSPATH这个环境变量,JRE将会按照CLASSPATH环境变量指定的路径来搜索java类,而不会自动寻找java类的,所以要自己设置CLASSPATH的话,一定要设置正确,不然运行不了!

时间: 2024-11-08 00:59:48

[原创] JDK(JRE)环境变量配置原理 --费元星的相关文章

ubuntu JDK&SDK 环境变量配置

ubuntu JDK&SDK 环境变量配置 一.下载JDK 1. 先卸载Ubuntu 带的openJDK: sudo apt-get purge openjdk* 2.到http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive- downloads-javase6-419409.html去下载JDK1.6 Linux 的版本,如:jdk-6u45-linux- x64.bin.当然,也可以去我的百度

java中JDK的环境变量配置

JDK环境变量装备以下观念为自个自个了解,不一定完全正确,期待评论纠正! 关于jdk的环境变量装备,通常会讲到三个,分别是JAVA_HOME,CLASSPATH,PATH.1.关于path,应该是最好了解的号码归属地查询,path是windows的体系环境变量,不是由于jdk而存在的,它的设置即是为了在恣意目录下履行jdk目录中bin文件夹应用程序的便利,将%JAVA_HOME%\bin目录存放于关键词挖掘工具path中,在恣意途径的cmd窗口中便都能够运转javac,java,jar等程序了.

jdk的环境变量配置

首先下载jdk,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 可以选择下载jdk的版本,按照提示一步一步安装完成. 然后打开安装好的jdk文件,打开bin目录,拷贝url, 然后右键点击我的电脑,选择 属性 ,然后选择 高级系统设置,如下图 点击 高级系统设置 后进入下图界面 点击 环境变量 ,如下 拖动右边的滚动条,找到变量名为 Path 双击点开后,进入下图界面 点击 右上角的 新建 ,将刚刚拷

jdk&tomcat环境变量配置及同时运行多个tomcat方法

一:jdk配置 安装jdk1.7.0_51,安装过程中所有选项保持默认:最后配置 JDK的环境变量: 在“我的电脑”上点右键—>“属性”—>“高级”—>“环境变量(N)”. 1.新建系统变量JAVA_HOME:C:\Program Files\Java\jdk1.7.0_51: 2.新建系统变量CLASSPATH:.;%JAVA_HOME%\lib;(注意:点号表示当前目录,不能省略) 3. 在系统变量path的值的前面加入以下内容:%JAVA_HOME%\bin;(注意:这里的分号不能

java jdk windows 环境变量配置

配置JDK环境变量(在步骤查看如何配置环境变量) 1--新建变量名:JAVA_HOME,变量值:C:\Program Files\Java\jdk1.7.0 2--打开PATH,添加变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 3--新建变量名:CLASSPATH,变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 备注: 1--.表示当前路径,%JAVA_HOME%就是引用前面指定的JAVA_HOME:

最新版jdk 13环境变量配置

1.配置环境变量 右击“我的电脑”-->"属性"-->"高级系统设置"-->"高级"-->"环境变量" 在系统变量里新建"JAVA_HOME"变量,变量值为:C:\Program Files\Java\jdk-13(JDK的安装路径): 在系统变量里新建"CLASSPATH"变量 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.ja

jdk w7环境变量配置

1.下载安装jdk, 选择自己想要的版本,jdk6 or jdk7 or other 2.右击"计算机"点击"属性"点击"高级系统设置"点击"环境变量"在系统变量下点击"新建" 名: JAVA_HOME 值: C:\Program Files\Java\jdk1.7.0_17 名: CLASSPATH 值: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar path变量

JDK常见问题 环境变量配置

“javac不是内部命令或外部命令” Windows7 安装“jdk-6u26-windows-x64.exe”后,常提示“javac不是内部命令或外部命令,也不是可运行的程序或批处理文件”. 但是输入 java -version能正常显示jdk版本号,说明java命令可用. 一般的,环境变量可以通过简单地系统设置完成:第一步:安装jdk-6u26-windows-x64.exe,路径为默认路径,一直下一步直到完成安装.第二步:设置环境变量:1.进入环境变量设置的方法,这里只针对Windows7

jdk/vm环境变量配置

jdk配置如下: JAVA_HOME D:\Java\jdk1.7CLASSPATH .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jarPath ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin eclipse/myeclipse 默认VM参数设置: -Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m