jdk、sdk和jre的区别
在实际的应用里,我一直没太弄明白jdk、sdk和jre的概念,趁着这次重新配置Java环境,复习了一下相关概念,参考了这两篇博文:
对SDK、JDK、JRE和JVM的理解总结
JRE 与 JDK的区别-菜鸟教程
个人理解:
JDK是SDK(广义软件开发工具包)的其中一种,是Java SDK(Java开发工具包)的简称,提供了Java的开发环境;
JRE(Java运行环境)包含在JDK安装包里,如果只安装JRE,那么就只能运行Java程序而不能进行开发(因为没有编译器和调试器);
JVM虚拟机是JRE的一部分,负责把Java程序翻译为字节码。
安装了JDK后,文件夹里会出现两套JRE,一套在Javajrex目录里,一套在Javajdk1.x.x_xxbin 目录里,bin目录里的jre是用来给开发工具本身运行提供环境的。
JDK版本选择
JDK8(=Java8=JDK1.8),这个版本较为成熟稳定,是JDK的一个重要长期支持版本(LTS),在生产环境中使用非常广泛;
JDK11,增加了大量实用的新特性,包括新的 ZGC、云计算监控诊断、Http Client、支持Unicode 10.0.0等,一共包含 17 个 JDK 增强提案;
JDK17,最新长期支持版本, 具有switch 新增模式,增加 Realed class 密封类,Parallel GC 默认启用已经浮点运算更加严格;
JDK18,短期版本,增加了服务提供者接口,默认字符集为UTF-8;
这里选择JDK8和JDK17两个版本同时安装。
安装JDK
Oracle JDK使用最广泛,版本最全面:
Java 下载 | 甲骨文
如果需要其他厂商的版本也可以去这里找:
JDK下载-编程宝库
双击下载好的MSI或EXE文件,next
自行选择安装目录,我直接默认,next
安装完成,close
继续安装JDK8,下一步
继续默认路径,下一步
有需要可以改,不改下一步
关闭
安装好啦
下面开始配置环境变量,win+R输入sysdm.cpl,回车->高级
为两个jdk指定安装目录变量,用数字区分
再建一个JAVA_HOME的变量,指定要使用的jdk版本,我先指定为JDK8,如果要切换版本,更改这个变量值就好
配置Path环境变量

新建两条变量,注意将%JAVA_HOME%bin;%JAVA_HOME%jrebin;
分开添加

配置CLASSPATH环境变量
.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar;
配置完成,连按确定关闭对话框。
打开cmd命令行,输入java -version
嗯?似乎不是我指定的那个版本,去隔壁抄抄答案:win10 同时安装jdk17和jdk8
[图片]
可是我这个路径下面没有javapath……?
让我用everything找找
哟,有两个,删哪个比较好呢……全删了吧
再看看

干得漂亮宝贝!
换个变量验证一下

No way :)
再抄抄隔壁答案:5、同台机器安装2个版本JDK
[图片]
注册表是吧,走你丫的
再把这俩倒霉孩子删了
再把这俩上移到最前面
、
欧了
PS. 每次验证java版本的时候记得重启命令行,不然就会像我一样不断怀疑人生
致谢这位同志:https://www.cnblogs.com/chenmingjun/p/9941191.html
win10 64位系统中安装多个jdk版本的切换问题

版权声明:本文内容始发于博客园>作者: AQR_Lunatic,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行可。
始发链接:https://www.cnblogs.com/AQRchaos/p/16479614.html
在此特别鸣谢原作者的创作。
此篇文章的所有版权归原作者所有,商业转载建议请联系原作者,非商业转载请注明出处。