JDK是什么JDK的作用
JDK是Java语言学习的基础,无论是想要学习Java编程、搭建JSP Web开发环境,还是进行Android应用开发,都离不开它。那么,究竟什么是JDK呢?
JDK,即Java Development Kit的缩写,是Java程序开发的工具包,也可以理解为Java的SDK。它是整个Java开发的核心,包含了Java的运行环境、开发工具以及基础的类库。对于想要在移动设备或嵌入式设备上开发Java应用程序的开发者来说,JDK是不可或缺的存在。
当我们提到JDK,通常会涉及到SE(J2SE,标准版)、EE(企业版)和ME(移动设备版)。这三种版本满足了不同开发需求。虽然版本名称有所变化,如JDK 1.6现在被称为Java SE Development Kit 6,但实质内容是一致的。安装JDK后,你会看到一个包含JRE的目录结构。JRE即Java Runtime Environment,是运行Java程序所必需的。
那么,什么是JDK和JRE的区别呢?简单来说,JRE是Java程序的运行环境,包含JVM(虚拟机)和所有的Java类库的class文件。而JDK则是Java的开发工具包,除了JRE外,还包括了各种类库和工具。这也是为什么在JDK的bin目录下会有javac等开发相关的命令。
当我们安装JDK时,通常会选择同时安装JRE,这样做能更好地理解它们之间的区别。值得注意的是,在jdk/jre/bin目录下,无论是client还是server文件夹,都会包含一个jvm.dll,这表示它们都有自己的虚拟机。对于开发者而言,具备开发功能的jdk自己的jre下才会有client性质的jvm和server性质的jvm,而仅仅作为运行环境的jre下只需要client性质的jvm.dll就足够了。
在学习Java的初期,我们首先要了解并安装JDK。安装完成后,还需要在环境变量path中设置jdk/bin路径,这样才能使用javac和java命令。可以说,JDK是Java开发的基础,只有深入理解并熟练掌握JDK,才能为后续的Java学习之路打下坚实的基础。你是否曾经想过,我们日常使用的Java命令,并非来自JDK的bin目录,而是来自JRE的bin目录呢?让我们进行一个有趣的实验,将JDK的bin目录下的java.exe文件移动到其他位置,然后尝试运行Java程序。你会发现,尽管进行了这样的操作,一切仍然能够正常运行!
那么,这引发了一个问题:明明我们没有将JRE的bin目录设置到环境变量中,为何Java程序仍然可以顺利运行呢?
设想一下,Java是为了广大用户的使用而设计的,对于大多数用户来说,他们并不需要JDK来进行开发,只需要JRE就能让Java程序运行。如果每个客户都需要手动去设置环境变量,那无疑会增添许多不必要的麻烦。在安装JRE的时候,安装程序会自动将JRE中的java.exe添加到系统变量中。
验证这个方法很简单,你可以查看系统环境变量的path配置,在最前面通常会有“%SystemRoot%/system32;%SystemRoot%;”这样的设置。接着,去Windows的system32目录下看看,你会发现一个java.exe。
如果你强行将JDK的bin目录移到system32变量前面,理论上也可以迫使系统使用JDK/JRE中的java。但除非有特殊需求,否则并不建议大家这样做。使用单独的JRE运行Java程序,也是一种在客户环境下常见的测试方式。
通过以上的阐述和实验,大家对JDK和JRE的内部联系和区别应该有了更为清晰的认识。JDK包含了Java的开发工具和环境,而JRE则是Java运行环境,二者虽然有所不同,但在某些情况下又可以互相替代。希望这篇文章能够帮助大家更深入地理解Java的这两个重要组件。