无法找到或加载主类org

无法找到或加载主类org

本文介绍了Elasticsearch:无法找到或加载主类org.elasticsearch.tools.launchers.JavaVersionChecker的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用CentOS,并下载了Elasticsearch 6.2.1.我创建了一个新用户"elastic",当我运行./bin/elasticsearch时出现错误:

I'm using CentOS and have downloaded Elasticsearch 6.2.1. I created a new user "elastic" and when I run ./bin/elasticsearch I get the error:

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

我尝试将此用户放置在管理组("wheel")中,并且发生相同的问题.如果我尝试使用"sudo ./bin/elasticsearch",我将得到:

I tried placing this user in an admin group ("wheel"), and the same problem occurs. If I try it with "sudo ./bin/elasticsearch" I get:

[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版本引起的,但似乎是最新的:

I searched a bit and saw that it this error can be due to the java version, but it seems to be up to date:

[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,也会发生这种情况

This also happens if I try Elasticsearch 6.1

任何建议将不胜感激.

推荐答案

如果您仍然遇到此问题...或者只是出于好奇...请查看文件./bin/elasticsearch-env.sh ,围绕第70行,查找命令:

In case you still have this problem... or just for curiosity... take a look at the file ./bin/elasticsearch-env.sh, around the line 70, look for the command:

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

检查该命令是否针对您的环境正确拼写",在此命令之前编写此命令,然后查看所获得的内容:

Check if it is correctly "spelled" for your environment, write this command just before it and see what you've got:

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

在我的情况下...我在Windows计算机内的Git Bash中运行,命令指向:

in my case... I was running in a Git Bash inside a Windows machine, and the command was pointing to:

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

更改为:

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

当我在Windows S.O上运行时.它启动并运行OK Elasticsearch.

As I was running on a Windows S.O. it get up and running OK the Elasticsearch.

这篇关于Elasticsearch:无法找到或加载主类org.elasticsearch.tools.launchers.JavaVersionChecker的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-24 05:14