JDK的全程是Java SE Development Kit,即标准版的开发包,是Oracle提供的一套用于开发Java应用a程序的开发包,它提供了编译运行Java程序所需的各种工具和资源,包括Java编译器 、Java运行时环境,以及常用的Java类库等。其中Java的运行时环境Java Runtime Environment,也被称为JRE,JRE包含了JVM,JVM是运行Java程序的核心虚拟机,而运行Java程序不仅需要核心的虚拟机,还需要其他类加载器、字节码校验器以及大量的基础类库。JRE除包含JVM之外,还包含运行Java程序的其他环境支持。一般来说,如果只允许Java程序,可以只安装JRE,无需安装JDK。但是如果需要开发Java程序,则应该安装JDK;当然,安装了JDK之后,就包含了JRE,也可以运行Java程序。
1)、登陆http://www.oracle.com/technetwork/java/javase/downloads/index.html。
2)、根据自己电脑的操作系统选择最新版本JDK的exe文件进行下载。
3)、下载完毕后,点击开始安装,根据提示,选择合适的安装目录(最好不要安装在中文目录下)进行安装。
4)、在安装过程中,只需安装JDK的两个组件即可。
开发工具:这是JDK的核心,包含了编译Java程序必须的命令工具;实际上,在这个选项里也包含了运行Java程序的 JRE,这个JRE只会安装在JDK安装目录的子目录里,这也是无需安装JRE的原因之一。
源代码:安装这个组件就会安装Java所有核心类库的源代码。
在这里我们为什么不安装公共的JRE:这是因为公共的JRE是一个独立的JRE系统,会单独安装在此系统的其他路径下。公共的JRE会向IE等浏览器和系统中注册Java运行时的环境。通过这种方式,系统中任何应用程序都可以使用公共JRE。由于现在在网页上执行的Applet程序越来越少,而且完全可以选择使用JDK目录下的JRE来运行Java程序,因此没有太大的必要安装公共JRE。
1)、bin:该路径下存放了JDK的各种工具命令,包含常用的javac、java等命令。
2)、conf:该路径下存放了JDK的相关配置文件。
3)、include:存放一些平台特定的头文件。
4)、jmods:该目录下存放了JDK的各种模块。
5)、legal:该目录下包含了JDK各模块的授权文档。
6)、lib:该路径下存放的是JDK工具的jar包。比如src.zip文件中保存了Java的源代码。
Windows操作系统是根据Path环境变量来查找命令的,Path环境变量的值是一系列路径,Windows操作系统将在这一系列路径中依次查找命令,如果能找到这个命令,则该命令是可执行的。
右击桌面上的 “ 计算机 ” 图标,出现右键菜单;单击 “ 属性 ” 选项,系统显示 “ 控制面板\所有控制面板项\系统 ” 窗口,单击 “ 高级系统设置 ” 选项,出现 “ 系统属性 ” 对话框,选择对话框中的 “ 高级 ” 选项,点击 “ 环境变量 ” 按钮,在出现的对话框中系统环境变量中设置path环境变量,在该环境变量后面追加jdk的bin目录安装路径。如果没有设置环境变量,直接命令行窗口下输入java和javac命令,系统汇报 “ java ” 不是内部或外部命令,也不是可运行的程序。
用户环境变量和系统环境变量的区别在于用户变量只对当前用户有效,为了减少自己所做的事对其他人没有影响,所以设置用户变量避免影响其他人。对于当前用户来说,设置用户变量和系统变量的结果大致相同,只是系统变量的路径排在用户变量的路径之前。这可能会出现一种情况,如果Path系统变量的路径里包含了java命令,而Path的用户变量里也包含了java命令,则优先执行Path系统变量路径里的java命令。
需要说明一点的是,在1.4之前的jdk版本里,常常需要设置CLASSPATH环境变量的值为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar,而如果使用1.5以上的版本的jdk,可以不用设置CLASSPATH环境变量,在1.9的jdk版本中,已经把dt.jar和tools.jar两个文件删除了。CLASSPATH环境变量的作用在于当使用 “ java Java类名 ” 命令来运行java程序时,JRE会从当前路径下去搜索,这需要在CLASSPATH环境变量中加(.),用以告诉JRE需要在当前路径下搜索java类。
另外,还有一个容易引起错误的地方是,由于Windows系统的很多路径都包含了空格,典型的有Program Files文件夹,而且这个文件夹是JDK的默认安装路径,如果CLASSTPATH环境变量里包含的路径存在空格,则可能会引起错误,因此,推荐大家安装JDK以及Java相关程序、工具不要安装在含有空格的路径下。