因为测试环境和其他项目组公用,所以solr所在的集群上有多套jdk,我们用的solr版本是5.5.2的,对应的jdk是1.7(也可以用1.8),其他项目组有用jdk1.9的。
我们启动solr的linux用户是Hadoop,Hadoop的JAVA_HOME指向的是jdk1.7,不知道什么原因,在用Hadoop启动solr时 solr报错: unrecognized VM option 'PrintHeapAtGC',solr启动不了。。
百度了一番说是jdk版本有问题,java9里已经去掉了PrintHeapAtGC,这也就说明solr启动时是运行在jdk1.9上的。先保证solr能启动,至于为什么solr默认使用jdk1.9以后有时间再查。
临时解决方案:指定solr使用的jdk版本
linux: 修改solr/bin下solr.in.sh 新增参数 JAVA_HOME="#" , # 是你要指定的jdk所在路径
windows:修改solr/bin下solr.in.cmd 新增参数 set JAVA_HOME="#" ,# 是你要指定的jdk所在路径