因为公司要求线上都使用open jdk, 所以最近我们把本地的java jdk都替换成了open jdk。中间遇到了一点小问题,记录一下。
我记得我之前收到过Oracle的更新消息,还以为自己当时已经替换成open jdk了,一看环境发现使用的还是java的jdk,哈哈。
二者的区别:
简单来说,OpenJDK是开源的,Java JDK是官方的,也就是Oracle JDK
linux下open jdk的安装教程: http://openjdk.java.net/install/
windows下下载open jdk的安装包: http://jdk.java.net/
由于我本地使用的java jdk8,所以选择了安装open jdk8
http://jdk.java.net/java-se-ri/8-MR3,不过官网上open jdk8只能找到32位的,open jdk9及以上倒是都可以找到64位的
所以最后我就在本地安装了32位的open jdk8 (需要64位的可能只能自己下载源码去编译了)
下载后解压并配置环境变量JAVA_HOME,并在path里加入如下配置:(open jdk可以不用配置classpath)
但是再次执行java -version看到的还是java jdk, 而不是open jdk.
查看了下配置发现path里有一个Oracle jdk路径C:\Program Files (x86)\Common Files\Oracle\Java\javapath
猜测是不是由于它导致我设置的open jdk配置不被优先使用,删掉后再试下就可以了
从上面的java环境可以看到虚拟机包括两种:Server VM 和 Client VM
Client VM(-client),为在客户端环境中减少启动时间而设计优化;
Server VM(-server),为在服务器环境中最大化程序执行速度而设计。
我这里是在本地使用,所以使用Client VM也没问题
如果你想要更改成Server VM, 也可以去jvm的配置文件修改。
64位操作系统:jvm的配置文件在{JRE_HOME}/lib/amd64/jvm.cfg
32位操作系统:jvm的配置文件在{JRE_HOME}/lib/i386/jvm.cfg
看jvm.cfg配置文件里第一行是什么,如果是-client则使用的Client VM, 如果是-server 则使用的是Server VM,换下位置就可以了
只要把-client 删除了,就不会提示上述warning了