win10 x64 JDK1.8环境搭建
JDK与JRE
JDK(Java Development Kit),JDK是面向开发人员使用的SDK,它提供了Java的开发环境。SDK(Software Development Kit )是指软件开发包,可以包括函数库、编译程序等。JDK仅仅是开发环境,如果需要将java程序运行起来,需要安装JRE(Java Runtime Enviroment),一般来说安装完JDK之后会发现在JDK安装路径 xx/Java/jdk1.8.0_91目录底下会有JRE目录,如下图:
JRE(Java Runtime Enviroment)是Java 运行时环境,是用Java语言编写的程序运行时所需要的软件环境,是提供给想运行java程序的用户使用的。
JAVA程序运行过程是先将JAVA程序(.java文件)经过javac(在JDK中集成的工具,也就是java compiler)编译,形成字符码文件(.class文件),这个java的中间文件,计算机是看不懂的,而这个文件是给JVM(Java Virtual Machine,java的虚拟机)用的,由JVM进行解释后形成机器语言给计算机。而这个JVM在JRE中,也就是说java程序的运行要有JRE来担当,在JRE上面运行java字节码(.class文件),jvm解析这些字节码,翻译成具体平台的机器指令。
JVM :英文名称(Java Virtual Machine),就是我们耳熟能详的 Java 虚拟机。它只认识 .class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。针对不同的系统有不同的 jvm 实现,有 Linux 版本的 jvm 实现,也有 Windows 版本的 jvm 实现。同一段代码在编译后的字节码是一样的,和系统无关,同一段字节码,在不同的 jvm 实现上会映射到不同系统的 API 调用,从而实现代码的不加修改即可跨平台运行。这就实现了java程序一次编写,多处运行。
总结:程序执行顺序 :JDK----JRE----JVM----OS
下面是JDK1.8 winX86的安装文件,解压即可。
链接:https://pan.baidu.com/s/1vLJYApwSIn5As9TkhZkmBg
提取码:8idf
也可以去官网下载https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
安装步骤
解压下载的文件
点击EXE文件运行
jdk 的子目录下也存在一个 jre,为什么要在这也安装一个呢?参考了一下这篇文章,https://www.cnblogs.com/yangming1996/p/8508187.html
这两个不同版本的 jre 相互之间有什么联系吗?
答案是:没有联系。甚至准确的来说,它俩是一样的,无论是用哪一个都是可以的。只是很多人习惯将会单独安装另一个 jre,虽然单独安装的 jre 也并没有被使用,原因可能就是刚开始大家都不清楚 jdk 和 jre 之间的关系,所以就默认的都安装上了。
在 jdk 的 bin 目录下,基本上都是一些可执行文件,并且它们还不大。其实这些可执行文件只是外层的一层封装而已,这样的目的是避免输入的命令过长。例如 javac.exe 内部调用的其实是 JDK 中 lib 目录中的 tools.jar 中 com.sun.tools.javac.Main 类,也就是说这些工具只是入口而已。而实际上它们本身又都是由 Java 编写的,所以在 jdk 目录下的 jre 既提供了这些工具的运行时环境,也提供了我们编写完成的 Java 程序的运行时环境。
所以,很明显,jdk 是我们的开发工具包,它集成了 jre ,因此我们在安装 jdk 的时候可以选择不再安装 jre 而直接使用 jdk 中的 jre 运行我们的 Java 程序。(但是大部分人都默认将两个都装上了)。但是如果你的电脑不是用来开发 Java 程序的,而仅仅是用来部署和运行 Java 程序的,那么完全可以不用安装 jdk,只需要安装 jre 即可。
环境变量设置
搜索查看高级系统设置
新建系统变量JAVA_HOME
选择浏览目录,定位到一开始安装的时候你选择的安装目录;配置CLASSPATH,没有的话就点新建,有的话点编辑
变量值填入 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 注意前面有个点
配置Path变量,点击编辑
点击新建,然后点击浏览,需要添加两个目录,一个是 xx\Java\jdk1.8.0_91\bin,一个是 xx\Java\jdk1.8.0_91\jre\bin
到这就安装配置完了
验证
键盘 win+R,输入cmd进入命令行
输入java,回车
输入javac,回车
写个java文件测试一下
使用notepad++ 写一个hello world ,保存到一个空的目录,文件命名demo.java,cmd到对应保存的文件夹,我这里是保存到了F盘,运行javac命令,编译java文件
能看到生成了一个java.class文件,用notepad++查看一下这个.class文件
可以看到是一堆字节码,可以在cmd命令行工具里面使用javap命令查看,javap是jdk自带的反解析工具。它的作用就是根据class字节码文件,反解析出当前类对应的code区(汇编指令)、本地变量表、异常表和代码行偏移量映射表、常量池等等信息。
这就是反解析class文件之后的信息,我们运行java demo命令,执行刚刚编译好的class文件,可以看见输出了结果。
使用javap -v demo,查看输出行号、本地变量表信息、反编译汇编代码、当前类用到的常量池等信息。
资源使用情况查看
查看资源使用情况,在命令行输入Jconsole
选择一个进程查看
可以看到JVM资源情况