centos ElasticSearch:无法找到或加载主类org.elasticsearch.tools.launchers.JavaVersionChecker

j5fpnvbx  于 2022-11-07  发布在  ElasticSearch
关注(0)|答案(5)|浏览(638)

我正在使用CentOS并下载了Elasticsearch 6.2.1。我创建了一个新用户“elastic”,当我运行./bin/elasticsearch时,我得到了错误:

Could not find or load main class org.elasticsearch.tools.launchers.JavaVersionChecker

我试着把这个用户放在一个管理组(“wheel”),同样的问题发生了。如果我用“sudo ./bin/elasticsearch”尝试,我得到:

[2018-02-15T17:42:39,776][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-6.2.1.jar:6.2.1]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.2.1.jar:6.2.1]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.2.1.jar:6.2.1]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.2.1.jar:6.2.1]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.2.1.jar:6.2.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.2.1.jar:6.2.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) ~[elasticsearch-6.2.1.jar:6.2.1]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:105) ~[elasticsearch-6.2.1.jar:6.2.1]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:172) ~[elasticsearch-6.2.1.jar:6.2.1]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:323) ~[elasticsearch-6.2.1.jar:6.2.1]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-6.2.1.jar:6.2.1]

我搜索了一下,发现这个错误可能是由于Java版本,但它似乎是最新的:

[elastic@sandbox-hdp elasticsearch-6.1.1]$ sudo update-alternatives --config java

There are 3 programs which provide 'java'.

Selection Command
1 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java

* + 2 /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java

3 /usr/lib/jvm/jre-1.5.0-gcj/bin/java

如果我尝试使用Elasticsearch 6.1,也会发生这种情况
如有任何建议,我们将不胜感激。

avwztpqn

avwztpqn1#

如果您仍然有这个问题...或者只是出于好奇...请查看文件**./bin/elasticsearch-env.sh**,在第70行附近查找命令:

"$JAVA" -cp "$ES_CLASSPATH" org.elasticsearch.tools.launchers.JavaVersionChecker

检查它在您的环境中的“拼写”是否正确,在它之前编写以下命令,然后查看您得到了什么:

echo "$JAVA" -cp "$ES_CLASSPATH" org.elasticsearch.tools.launchers.JavaVersionChecker

在我的例子中...我在Windows机器中的Git Bash中运行,命令指向:

/c/Users/Ualter/Developer/ELKStack/elasticsearch-6.2.2/lib/*

变更为:

/Users/Ualter/Developer/ELKStack/elasticsearch-6.2.2/lib/*

当我在一个Windows sideo上运行的时候,它启动并运行了好的ElasticSearch。

g9icjywg

g9icjywg2#

我也遇到了这样的奇怪问题,第一次它以root身份运行elastic时引发异常,在我添加了一个新用户elastic并以elastic身份运行它之后,我看到了这个异常“无法找到或加载主类org.elasticsearch.tools.launchers.JavaVersionChecker“。
我通过将程序目录移到非/root/目录来解决这个问题,例如,我将它放在/opt/elk/中,它就工作了。
所以我想,为了安全起见,可能弹性不允许以root身份运行,所以我们不能把程序放在root用户的目录下。希望能给你一些提示。

a6b3iqyw

a6b3iqyw3#

我正在努力在Windows上使用ElasticSearch6.7.1。
我在运行bin/elasticsearch.bat时遇到了这个错误。
长话短说,可能是我的java版本和ElasticSearch有问题,它不能运行jar(使用Java8211)。
我从这里安装了最后一个ElasticSearch 6.x:
https://www.elastic.co/downloads/past-releases#elasticsearch
并取消设置我创建的现有ES_HOME和ES_CLASSPATH环境变量,一切都很顺利。

mspsb9vt

mspsb9vt4#

我正在安装elasticsearch插件es-sql在Windows上。
在我的例子中,以管理员角色运行cmd。

pokxtpni

pokxtpni5#

您似乎没有正确的权限。请尝试将其设置为774(rwxrwxr--),然后再次检查:

sudo chmod 774 -R elasticsearch-6.3.2/

相关问题