由于2019年1月起Oracle对通用计算以外的应用场景开始收费,综合看来还是主要针对嵌入式的Java应用进行收费,毕竟嵌入式设备的数量是庞大的,可以有数亿元进账。

因Oracle JDK收费,各大公司也开始了从Oracle JDK更换到开源的Open JDK,对于开源JDK,有经过验证的zulu版本,也有原汁原味的Open版本。

zulu版本包含多种安装格式,有直接解压的zip包,也有msi安装文件,对于Linux和Mac OS,有tar包和dmg包可供选择。

我们知道安装JDK是要配置环境变量的,但不是所有的软件都需要Java Develoment Kit,即javac.exe,大部分其实用的是Java Run Time,即java.exe。

因为msi安装会写入注册表项,所以在Windows平台上,如果安装了zulu等开源JDK,并配置了JAVA_HOME及PATH环境变量,还提示未安装java,提示去Oracle网站下载,请安装msi格式,而不要使用zip解压方式。

虽然工作中一直使用Java语言及JDK,但大多数的小伙伴,对于标准的JAVA环境变量,还是配置的五花八门,虽然看起来都能正常运行和编写java程序,但实际上在更换jdk或升级jdk版本时,工作量就来了。

这里给出标准的参考:

  1. 首先环境变量分用户环境变量和系统环境变量,即Linux的user profile和system profile;

  2. 不管是配置用户级的还是系统级的,要知道用户环境变量会继承系统的环境变量;用户的环境变量只对自己有效,可以在不重启电脑的情况下生效,系统环境变量是对登录的每个用户都有效,当出现jdk版本冲突时,请检查是否设置了多重环境变量;

  3. 新建JAVA_HOME变量,指向JDK安装路径,指定到主目录即可,不需要指定到bin文件夹;例如C:\Program Files\Java\jdk-1.8.0_191,而不是C:\Program Files\Java\jdk-1.8.0_191\bin这个路径;

  4. 新建CLASSPATH变量,指向JDK安装路径下lib库里的dt.jar,以及JDK安装路径下jre\lib文件夹下的tools.jar和rt.jar,以及当前目录;总体即为CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\jre\lib\rt.jar;%JAVA_HOME%\jre\lib\tools.jar; (Linux环境下将%JAVA_HOME%都修改为$JAVA_HOME)

  5. 更改Path环境变量,将%JAVA_HOME%\bin;添加到Path环境变量的最前端;

  6. 测试JAVA环境变量是否配置成功,请执行javac -version 和 java -version ;

  7. 项确定系统环境变量中是否配置了多个JDK,执行 where java.exe命令或where javac.exe ;(Linux下将where换成which即可)

  8. 测试所有涉及到Java的应用程序,因为Java分32位和64位,所以要确认清楚自己所装的JDK是否与自己需要用的开发环境所需一致;

如果某个应用需要更换JDK,需要先换运行环境的JDK,再换开发环境的JDK,最后用开发环境新JDK打包程序jar文件,再在运行环境中运行,保证最小化的差异验证原则;

【原创】Open JDK更换过程及更换后的问题总结与分析的更多相关文章

  1. 服务器运维 -- windows系统更换System32下文件后 重启无法进入桌面

    场景描述: windows系统更换System32下文件后 重启无法进入桌面 情况1,原替换文件有备份     解决建议: 准备好该文件 情况2,原备份文件没有备份  解决建议:从相同版本的服务器上边 ...

  2. jdk 安装过程配置环境变量 error 的解决过程

    jdk 安装过程配置环境变量 error 的解决过程 问题背景: 我在安装 jdk 过程中在JAVA_HOME和path中添加路径后, cmd 中输入java 和javac均出现错误,因为之前在 D ...

  3. 十二、jdk工具之jcmd介绍(堆转储、堆分析、获取系统信息、查看堆外内存)

    目录 一.jdk工具之jps(JVM Process Status Tools)命令使用 二.jdk命令之javah命令(C Header and Stub File Generator) 三.jdk ...

  4. nginx和Tomcat集成后发生的重定向问题分析和解决

    nginx和Tomcat集成后发生的重定向问题分析和解决 Tomcat前端配置一个HTTP服务器应该是大部分应用的标配了,基本思路就是所有动态请求都反向代理给后端的Tomcat,HTTP服务器来处 理 ...

  5. Python_Tips[2] -> 函数延后估值及字节码分析

    函数延后估值及字节码分析 在一个循环中定义了函数 f 但是并未对其进行调用,在循环结束后调用,此时i值为3故最终3个函数输出均为9.而非1, 4, 9. 这是由于在定义闭包函数 f 时,传入变量 i, ...

  6. 记号一次更换IBM X3650M4主板后RAID无法启动的解决

    https://wenku.baidu.com/view/9d503ef367ec102de2bd89d7.html 强烈感谢上面分享文档的大侠!! 1.更换主板后,linux系统,无法加载引导.需要 ...

  7. 更换手机号或者更换手机后QQ设备锁的设置问题

    更换手机号 一步到位,更改密保手机号,OK了 更换手机 老卡插入 登录QQ,OK了 更换手机号和手机 老卡插入新手机 登录QQ 新卡插入新手机 更改密保手机号,OK了

  8. 更换jdk版本:jdk1.8更换为jdk1.7之后输入java -version还是出现1.8的版本号

    安装了1.7之后修改了JAVA_HOME的环境变量 修改成功之后,在cmd输入java -verson还是出现1.8的版本号 解决办法:将环境变量Path中的%JAVA_HOME%/bin 移到最前面 ...

  9. opencv2.4更换为opencv3.1后,mxnet编译错误(libpng16.so.16)

    编译显示错误为: /usr/bin/ld: warning: libpng16.so.16, needed by /usr/local/lib/libopencv_imgcodecs.so, not ...

随机推荐

  1. 【Coucurrency-CountDownLatch】-20161203-0002

    简介 java异步任务相关的工具.主要用在某些线程需要等到其他线程完成某些操作后才能执行的场景. 等待线程需要显示的调用wait方法,表示线程当前挂起,需要等到countdownLatch到0才执行. ...

  2. rm: cannot remove ' xxx': Permission denied

    一般出现这个问题的原因是权限被改变了,使用chown 修改即可 可参考:chmod.chgrp.chown详解 linux chmod命令和chown命令

  3. 科学计算库Numpy(1)

    Numpy 一,数据结构 数据类型: ndarray import numpy world_alchol = numpy.genfromtxt('world_alchol.txt',delimiter ...

  4. python从零开始 -- 第2篇之python版本差异

    python从零开始 -- 第2篇之python版本差异 第0篇开始,咱们就说选择 python 3.x,一般来说,咱们面临选择的时候总是想了解更多一点,并且版本之间的对比能引申出很多有意思的故事和知 ...

  5. linux配置服务器

    梳理一下这次配置服务器的思路. 1,挂载磁盘 Java和neigx上传到根目录下,tomcat放在data目录下,数据库新建文件夹也在data下, 2,配置环境变量 3,nginx修改域名 4,数据库 ...

  6. 冰水挑战 HDU - 6495

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6495 题解:DP!!! dp[i][j] 表示前i个挑战,接受了j个剩余的最大体力,最后输出体力大于0 ...

  7. pytorch dataloader num_workers

    https://discuss.pytorch.org/t/guidelines-for-assigning-num-workers-to-dataloader/813/5 num_workers 影 ...

  8. 安装Oracle数据库心得

    学到Oracle数据库了,想在自己电脑上安装个Oracle数据库.在网上下载了一个Oracle18c版 下边是我安装Oracle18c版的数据库失败,后来在卸载过程中遇到的问题: 1.用Univers ...

  9. Spring-Cloud-Netflix

    Spring Cloud Netflix组件以及部署 (1)Eureka,服务注册和发现,它提供了一个服务注册中心.服务发现的客户端,还有一个方便的查看所有注册的服务的界面. 所有的服务使用Eurek ...

  10. macbook远程连接报错no matching cipher found

    在.ssh/目录下添加config文件 Host xxx.xxx.xxx.xxx Ciphers 3des-cbc KexAlgorithms +diffie-hellman-group1-sha1 ...