Elasticsearch访问Java权限问题:Ubuntu环境启动数秒后闪退如何解决
报错根因
该错误由Java版本与Elasticsearch(ES)版本不兼容触发。7.x及更早的ES版本仅支持Java 8与Java 11,若后续补充安装的是Java 16及以上高版本,ES内置的安全管理器没有高版本Java内部模块的访问权限,就会抛出该权限异常,导致进程启动后短时间内崩溃退出。
修复步骤
- 第一步:确认当前安装的ES版本对应的兼容Java范围:ES 6.x/7.x适配OpenJDK 11,ES 5.x适配OpenJDK 8,ES 8.x及以上版本自带捆绑JDK,无需单独安装系统级Java即可运行。
- 第二步:执行
java -version查看当前系统生效的Java版本,确认是否超出对应ES版本的兼容范围。 - 第三步:调整Java版本完成适配:
- 卸载当前不符合要求的Java版本,安装对应兼容版本,以ES 7.x适配的OpenJDK 11为例,Ubuntu下安装命令为:
sudo apt update && sudo apt install openjdk-11-jdk - 执行
sudo update-alternatives --config java,在弹出的列表中选择刚安装的OpenJDK 11作为系统默认Java版本,同步执行sudo update-alternatives --config javac切换Java编译工具版本。 - 重新执行
java -version确认版本切换成功后,重启ES进程即可正常启动。
- 卸载当前不符合要求的Java版本,安装对应兼容版本,以ES 7.x适配的OpenJDK 11为例,Ubuntu下安装命令为:
- 可选方案:若不需要修改系统全局Java版本,可单独为ES指定Java路径:编辑ES安装目录下的
bin/elasticsearch-env文件,在文件开头添加export JAVA_HOME=/path/to/your/openjdk-11(替换为实际兼容版JDK的本地路径),保存后重启ES即可。
内容的提问来源于stack exchange,提问作者KRASSUSS
相关产品推荐
相关产品推荐

