错误:找不到或加载主类org.apache.ignite.startup.cmdline

6

在谷歌云实例上安装Apache Ignite时,我遇到了这个错误。我搜索了一下这个错误,希望已经有人遇到过这个问题。但是没有人遇到过这个问题。请帮助我解决它。

[root@api-manager1 apache-ignite-2.3.0-src]# bin/ignite.sh 
Error: Could not find or load main class org.apache.ignite.startup.cmdline.CommandLineRandomNumberGenerator
Error: Could not find or load main class org.apache.ignite.internal.util.portscanner.GridJmxPortFinder
bin/ignite.sh, WARN: Failed to resolve JMX host (JMX will be disabled): api-manager1
Error: Could not find or load main class org.apache.ignite.startup.cmdline.CommandLineStartup
4个回答

17
您下载的是源代码而不是已编译好的二进制文件,因此您没有所需的库文件。您需要使用apache-ignite-2.3.0-bin 替代源代码。

你是对的,以后如果我是该应用程序的新手,我会下载二进制文件。再次感谢。 - darshan a n

3
您正在尝试在已下载的源代码文件中启动服务器,而不是在二进制文件下载中启动。我曾经遇到过类似的问题,为了解决这个问题,请按照以下步骤进行操作:
1. 前往二进制版本发布页面:https://ignite.apache.org/download.cgi,并向下滚动,如下图所示:

enter image description here

2. 下载二进制版本,然后在安装文件夹中执行以下命令:ignite.bat /examples/config/example-ignite.xml
3. 服务器将会以以下方式启动:

enter image description here


1
如果您正在使用Ignite的二进制分发版本,但仍然面临此错误,则是因为您的IGNITE_HOME指向了错误的目录。

IGNITE_HOME与此错误有何关系?

只需查看ignite.sh脚本,它如下所示:

if [ "${IGNITE_HOME}" = "" ];
    then IGNITE_HOME_TMP="$(dirname "$(cd "$(dirname "$0")"; "pwd")")";
    else IGNITE_HOME_TMP=${IGNITE_HOME};
fi

SCRIPTS_HOME="${IGNITE_HOME_TMP}/bin"
...

以上脚本是为了根据IGNITE_HOME值确定SCRIPTS_HOME的绝对路径。作为启动的一部分,您可以观察到脚本正在尝试加载位于SCRIPTS_HOME上的CommandLineStartup类。如果IGNITE_HOME指向错误的目录,则无法找到该类,并最终抛出此异常。

0
这个问题可能有点老了,但我发表我的答案来帮助那些刚开始使用Apache Ignite的人。从Apache Ignite网站上,有许多使用Apache Ignite(src、bin、docker等)的可能性之一是使用src文件。在这种情况下,您需要完全按照此处提到的内容进行操作:https://apacheignite.readme.io/docs/getting-started#building-from-source 从Apache Ignite网站上:

二进制下载仅为方便用户而提供,并非官方Apache Ignite发布

注意:src文件夹包含DEVNOTES.txt,其中详细说明了生成二进制文件所需遵循的步骤。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接