无法在 Linux(SUSE) 上 运行 ElasticSearch-7.5.0
Cannot run ElasticSearch-7.5.0 on Linux(SUSE)
我正在尝试 运行 我的服务器上的 ES,但我收到了这个错误:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/elasticsearch/tools/java_version_checker/JavaVersionChecker : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access[=12=]0(URLClassLoader.java:58)
at java.net.URLClassLoader.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
找不到主要 class:org.elasticsearch.tools.java_version_checker.JavaVersionChecker。程序将退出。
貌似是java版本的问题,请问是我做错了什么,还是在运行安装ES之前需要做一些特殊的配置?
请注意,我们在服务器中安装了以下 JDK 版本:
- jdk1.7.0_25_32bit
- jdk1.7.0_25_64bit
- jdk1.7.0_72_32bit
- jdk1.7.0_72_64bit
- jdk1.8.0_74_64bit
最新版本的 elasticsearch 与旧版本 Java 不兼容,有关一般错误 Unsupported major.minor version 51.0
的更多详细信息,请参见 here。
同样如this official ES doc中所述,如果未找到兼容的 JVM 版本,ES 将不会启动。
Elasticsearch will refuse to start if a known-bad version of Java is
used. The bundled JVM directory may be removed when using your own
JVM.
并且可以在此 officially supported matrix link.
中找到具有不同版本的 elasticsearch 的完整受支持的 JVM 版本
查看您的错误消息,很明显您使用的是 1.7 JDK 版本,它使用 51
作为 this SO 答案中提到的主要版本。并且如果您检查上面支持的矩阵,在 ES 5.X 上或之后不支持低于 JDK 1.8 版本。
因此您需要将 JDK 指向 1.8 版本,因为它已经安装在您的系统中但未被使用,并且有大量文档可用于说明如何操作以及之后那,你应该可以启动 ES.
我正在尝试 运行 我的服务器上的 ES,但我收到了这个错误:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/elasticsearch/tools/java_version_checker/JavaVersionChecker : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access[=12=]0(URLClassLoader.java:58)
at java.net.URLClassLoader.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
找不到主要 class:org.elasticsearch.tools.java_version_checker.JavaVersionChecker。程序将退出。
貌似是java版本的问题,请问是我做错了什么,还是在运行安装ES之前需要做一些特殊的配置?
请注意,我们在服务器中安装了以下 JDK 版本:
- jdk1.7.0_25_32bit
- jdk1.7.0_25_64bit
- jdk1.7.0_72_32bit
- jdk1.7.0_72_64bit
- jdk1.8.0_74_64bit
最新版本的 elasticsearch 与旧版本 Java 不兼容,有关一般错误 Unsupported major.minor version 51.0
的更多详细信息,请参见 here。
同样如this official ES doc中所述,如果未找到兼容的 JVM 版本,ES 将不会启动。
Elasticsearch will refuse to start if a known-bad version of Java is used. The bundled JVM directory may be removed when using your own JVM.
并且可以在此 officially supported matrix link.
中找到具有不同版本的 elasticsearch 的完整受支持的 JVM 版本查看您的错误消息,很明显您使用的是 1.7 JDK 版本,它使用 51
作为 this SO 答案中提到的主要版本。并且如果您检查上面支持的矩阵,在 ES 5.X 上或之后不支持低于 JDK 1.8 版本。
因此您需要将 JDK 指向 1.8 版本,因为它已经安装在您的系统中但未被使用,并且有大量文档可用于说明如何操作以及之后那,你应该可以启动 ES.