关于jdk和jre的总结

最基础的也是最重要的,往往在错综复杂的环境中,基础掌握的正确性与否在解决问题时至关重要。

本来是要和tomcat一块讲的,结果发现好多要说的,还是分开吧

-------------------调皮的分界线------------------------------

只说sun公司的jdk(sum的windows的jdk都是exe形式)

jdk分64位(x64)和32位(x86)两种,位数只和机器有关,sun官网的jdk在linux和win一样,这里只说windows的着2个版本

基础结论:

           1 、32位jdk可以安装和运行在64位和32位的机器,但是64位只能安装在64位机器上,即使你用的是64位的zip文件夹形式的非安装包,也不能运行在32位机器上,这是铁则!!!!铁则!!!铁则!!!

           2、查询当前系统环境的jdk(环境变量)版本:直接在命令提示符下输入java -version,里面有jdk版本和位数(带有明确64-bit字样就是64位,啥都没有或有x86就是32位)

           3、查询指定jdk版本:命令提示符下直接进入jdk的bin目录,运行java -version,这个方法最万能(能够屏蔽环境变量的干扰)

           4、安装包在安装过程中分为2步:第一步是jdk安装,仅仅是将jdk的文件复制到指定的目录;第二步是jre安装,即运行时环境;两步是独立的,第二步可以取消

           5、根据4的结论,经过测试发现:

                                     打开命令提示符运行Java -version时,机器寻找java的规则是:优先找高版本的jre(运行时环境),如果没有jre,找环境变量path,如果path中包含多个,按从左到右;如果path中也没有,则提示没有java命令。(显然只有JAVA_HOME配置在path中才有效)

           6、经过测试发现windows下jre和jdk的安装程序有如下规律,如图:


根据如图所示,想必大家发现规律了,我经过测试,是可以单独卸载的,当然jdk的卸载就是把jdk目录删了,没干啥,而jre这个就复杂了,除了删除jre目录外做了啥个人不清楚。通过如同所示,根据第5条规律,能够判断出,当前的Java环境一定是jre8(java 8 update 51),尽管他没有jdk

            7、根据5、6的结论,继续测试,发现卸载jre各版本后(jdk卸载不考虑,因为它根本不影响)的当前java版本依然服从第5条。

                            举个例子:上图中当前Java版本是jre8,如果卸载了jre8,那么当前版本就是jre7;如果继续继续jre6,呵呵  没影响,如果再继续卸载jre7,那么寻找path路径下是否配置了jdk或jre路径,这样看具体机器环境了。


以上都是常识,下面说下复杂的情况:

情况1:

       细心的人会发现,下载了sun的exe形式jdk包,一路next安装完,在命令提示符任意目录运行java -version,里面有jdk版本和位数,但是查看环境变量里没有JAVA_HOME,path里没有jdk的bin目录,这是因为你一路next的时候,也安装了jre(回想一下安装过程中是不是提示你2次选择安装目录,第一个是安装jdk,第2个就是jre的)。如果你再细心点,会发现jdk的目录里已经有了jre。

       推荐在安装过程中,在安装jre时直接点取消,不安装jre,然后手动去配置JAVA_HOME或path,这样最干净,对学习和开发干扰最小


情况2 :

       有时你的系统环境变量中并没有配置jdk,但是在命令提示符中任意目录运行java -version有效,那是jre,由于因为你的机器安装过exe的jdk,里面包含jre包,如果你安装的jdk和jre不是相同目录的话,即使删除jdk目录,也是能运行的,是情况1造成的,开发阶段不建议安装jre,呵呵 和第一个有点重复了

5、机器里windows下安装过各种版本(32位、64位),细节都不清楚,新项目要部署在这台机器,新项目也需要jdk,怎么办?

                    解决方法: 先检查机器的jdk版本,

                                    1、如果高于你项目的版本,那么你使用机器的jdk或jre就行了,Java是向下兼容的;

                                    2、如果低于你的版本,使用你项目的jdk即可,同理

                                    3、如果客观要求你不许动机器的配置,那么你不能将你的jdk或jre配置成全局的了,只能配置成你项目独有的,如果项目服务器是tomcat,我后面的文章会讲,这里只讲jdk

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值