1、首先是下载jdk,即java开发工具包。
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
2、安装jdk。
会生成两个目录,即jdk和jre目录。
下面解释jdk、jre和jvm。(原文:https://blog.csdn.net/qq_35326718/article/details/79443911 )
JVM :英文名称(Java Virtual Machine),就是我们耳熟能详的 Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。所以说,jvm 是 Java 能够跨平台的核心,具体的下文会详细说明。
JRE :英文名称(Java Runtime Environment),我们叫它:Java 运行时环境。它主要包含两个部分,jvm 的标准实现和 Java 的一些基本类库。它相对于 jvm 来说,多出来的是一部分的 Java 类库。
JDK :英文名称(Java Development Kit),Java 开发工具包。jdk 是整个 Java 开发的核心,它集成了 jre 和一些好用的小工具。例如:javac.exe,java.exe,jar.exe 等。
显然,这三者的关系是:一层层的嵌套关系。JDK>JRE>JVM。
在jdk目录下,你会发现也存在着jre目录。这个目录与安装生成的jre目录是没有差别的。所以在安装的时候可以选择不安装jre。而如果你的电脑不是用来开发java程序的,而仅仅是用来部署和运行Java程序的,那么完全可以不用安装jdk,只安装jre。
3、对jdk目录的解释
bin:存放了JDK的各种工具命令即JDK开发工具的可执行文件其中这些可执行文件都是二进制的,其中包括编译器、解释器以及其他一些工具,比如我们刚开始用的Javac、Java命令去检查JDK是否安装配置正确就是在这个目录下面的命令。
include:一些供C语言使用的标题文件,其中C语言的头文件支持Java本地接口和Java虚拟机调试程序接口的本地编程技术。
jre:运行Java程序所必须的JRE环境。
lib:JDK工具命令的实际执行程序。
src.zip:该压缩文件里面存放的就是Java所有核心类库的源代码。
javafx-src.zip:存放JavaFX脚本,JavaFX它是一种声明式、静态类型编程语言。
4、配置环境变量。
JAVA_HOME:jdk安装目录(C:\Java\jdk1.8.0_181)
Path:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
Path:可以让我们在没有这个应用的路径下面打开我们需要打开的应用,前提是这个应用得在环境变量里面配置了路径。
当用javac、java等命令编译、运行Java程序时,操作系统需要查找javac.exe、java.exe这些可执行文件的位置,然后调用这些可执行程序对Java程序进行对应的操作。
JAVA_HOME:如果我们需要配置多个 jdk 的环境变量,我们也需要把每个目录都添加到 path 中吗?这样 path 是不是就看起来很乱了呢?这时候,我们就需要一个 JAVA_HOME 变量了。
有些开发工具,如(eclipse,IDEA, tomcat)都会去扫描你的JAVA_HOME变量,看看你的电脑装了几个版本的 jdk。
CLASSPATH:我们配置 path 环境变量,只是告诉我们的电脑,我们装了 java ,这个应用放在哪里,而 CLASSPATH 就相当于 java 虚拟机的 path,它是用来告诉我们需要运行的 .class 文件时放在哪里。
关于dt.jar和tools.jar:
tools.jar 是系统用来编译一个类的时候用到的,即执行javac的时候用到
javac XXX.java
实际上就是运行
java -Calsspath=%JAVA_HOME%\lib\tools.jar xx.xxx.Main XXX.java
javac就是对上面命令的封装 所以tools.jar 也不用加到classpath里面
dt.jar是关于运行环境的类库,主要是swing的包 在用到swing时最好加上。
最后关于这个知识点在查看很对资料后,发现了类加载机制这一很重要的知识点!以下为我在网上找到的一些参考资料:
https://www.cnblogs.com/aspirant/p/7200523.html