您的位置:首页 > 编程语言 > Java开发

jdk jre jvm 与 java环境变量

2011-02-04 18:40 211 查看
jdk:java development kit java开发包。

jre:java runtime environment java运行时环境

jvm:java virtual machine java虚拟机

 

oracle官网下载java开发包。安装可发现包括jdk,jre,java开发demo,jdk源码,javaDB. 其中javaDB 是jdk6.0新加入的特性。这是一个纯 Java 实现、开源的数据库管理系统(DBMS),源于 Apache 软件基金会(ASF)名下的项目 Derby。它只有 2MB 大小,对比动辄上 G 的数据库来说可谓袖珍。对于开发人员来讲,jdk是必须的,其他都可以选择性的进行安装。jre运行环境,jdk本身包含jre. sun(现在的oracle)只所以要在jdk中在包含jre是因为考虑到jdk的完整性。因为jdk中很多命令调用的执行文件也是由java编写的,运行这些命令当然需要jre这样的运行环境。如果选择安装jre,可以发现安装后有两套jre.一套位于jdk目录下,这是jdk包含的jre,我们可称之为jdk私有的jre.而另一套jre则是我们选择安装的jre,可以称之为公有的jre.如何你想参看java开发demo,则选择demo的安装。想查看jdk源码则把jdk源码也安装,同理javaDB. 

 

安装成功后,打开jdk目录可以看到bin,lib目录,也可以看到上一步选择性安装功能的目录,比如demo,javadb等目录。注意此处的jre目录为jdk自带的jre,也就是私有的jre. 其中bin目录下包含了java开发的相关命令。lib目录中包括各种工具包。

 

打开dos命令窗口,输入notepad回车,则会打开记事本程序。输入java 回车。如何你上一步选择安装了jre,则会看到下面列出了java命令的相关参数。如果没有安装jre,则显示找不到该命令。为什么一个简单的命令就可以打开一个程序,这就涉及到了我们将要设置的环境变量。在windows系统中,在dos窗口输入命令回车时,会现在当前目录寻找命令文件,找不到则在父目录中查找,如果在找不到则去系统环境变量中path变量配置的目录中寻找。打开环境变量查看path值,其中包括%SystemRoot%/system32;找到系统system32目录打开可以发现notepad.exe。安装jre时,会把java.exe放置到system32目录下,而该目录在path环境变量中进行了配置。

 

 

java开发中涉及到的环境变量主要包括JAVA_HOME,PATH,CLASSPATH.其中JAVA_HOME用于指定jdk的根目录,PATH指定jdk根目录下的bin目录,CLASSPATH指定要执行的class文件放置的位置。这些环境变量不是开发java所必须的,只所以设置只是为了开发的便利,就像真正开发时用到各种IDE,而不用记事本等。

 

JAVA_HOME的设置时为了PATH等环境变量的引用,某些应用软件中也可能会引用到这个环境变量。当jdk目录更改时只需要更改这个变量值,其中引用的地方都不用变化。

PATH 环境变量的设置是为了在dos窗口调用java相关命令时不用到jdk bin目录下去调用,在任何目录中调用java相关命令时,会在当前目录寻找,找不到父目录,父目录找不到PATH变量配置路径中寻找。

CLASSPATH的设置为了执行class文件时方便找到class文件的位置。比如在D盘根目录下存在一个A.java文件。当前目录下调用javac命令编译A.java文件,可以看到在当前目录下生成了A.class文件。调用java命令执行,则A.class文件正确执行。如果此时将A.class文件移动到E盘。在D盘执行java命令时会报错,因为默认只会在当前目录中寻找class文件。这是想要执行A.class,则需要在java命令中指定classpath参数标示class文件的位置或者设置CLASSPATH环境变量。新建CLASSPATH环境变量,设置为e:  此时同样在D盘执行java命令则会看到A.class被正确执行(注意:配置完环境变量后需要新打开dos窗口,配置在新窗口中生效)。在将A.class剪切到D盘,执行java命令。这时又报找不到class文件了。这是因为此时CLASSPATH设置的为E盘,把默然当前目录给覆盖了,jvm中的classloader只会在E盘去查找class文件。所以,如果设置CLASSPATH,一般设置为CLASSPATH=.;XXXXXX   其中的 . 就代表当前目录,分号;代表分隔符,XXXXXX代表我们配置的存放class文件的路径。另外如果我们的程序如果用到外部的一些jar包,比如数据库连接等相关的jar包,我们也可以在CLASSPATH中进行设置,以便可以方便的加载相关的class文件。

 

 

在实际的开发中,我们通常会借助于各种IDE进行开发。它们一般都会自带jdk。如果想用我们自己的jdk,只需要指定jdk的根目录,其他IDE会帮助自动配置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息