Error: Could not find or load main class org.apache.ignite.startup.cmdline
Error: Could not find or load main class org.apache.ignite.startup.cmdline
在 google 云实例上安装 apache ignite 时,出现此错误。
我 googled 这个错误,希望有人已经遇到过这个错误。
但是 none 遇到了这个问题。帮我解决一下。
[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
您下载的是源代码,而不是二进制文件,这就是您不需要库的原因。您需要改用 apache-ignite-2.3.0-bin。
这个问题可能有点老,但我发布我的答案是为了帮助刚开始使用 apache ignite 的人。
从 apache ignite 网站开始使用 apache ignite(src, bin, docker ...) 有很多可能性,其中之一是使用 src 文件。在这种情况下,您需要完全遵循此处提到的内容
https://apacheignite.readme.io/docs/getting-started#building-from-source
来自 apache ignite 网站:
Binary downloads are provided for the convenience of our users and are not official Apache Ignite releases
N.B:src 文件夹包含 DEVNOTES.txt 它提供了生成二进制文件需要遵循的步骤的详细信息。
您正在尝试在下载的 src 文件中启动服务器,而不是在二进制文件中 download.I 遇到了类似的问题,请按照以下步骤解决
转到二进制版本:https://ignite.apache.org/download.cgi
并向下滚动,如屏幕截图所示:
下载二进制版本然后在安装文件夹执行命令:ignite.bat /examples/config/example-ignite.xml
服务器将启动如下:
如果您正在使用 ignite 的二进制分发版并且仍然遇到此错误,那是因为您的 IGNITE_HOME
指向了错误的目录。
How does IGNITE_HOME related to this error?
看一下ignite.sh脚本,如下
if [ "${IGNITE_HOME}" = "" ];
then IGNITE_HOME_TMP="$(dirname "$(cd "$(dirname "[=10=]")"; "pwd")")";
else IGNITE_HOME_TMP=${IGNITE_HOME};
fi
SCRIPTS_HOME="${IGNITE_HOME_TMP}/bin"
...
以上脚本是根据IGNITE_HOME的值判断SCRIPTS_HOME的绝对路径。作为启动的一部分,您可以观察到脚本正在尝试加载出现在 SCRIPTS_HOME 的 CommandLineStartup class。如果 IGNITE_HOME 指向错误的目录并最终抛出此异常,它将找不到 class。
在 google 云实例上安装 apache ignite 时,出现此错误。 我 googled 这个错误,希望有人已经遇到过这个错误。 但是 none 遇到了这个问题。帮我解决一下。
[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
您下载的是源代码,而不是二进制文件,这就是您不需要库的原因。您需要改用 apache-ignite-2.3.0-bin。
这个问题可能有点老,但我发布我的答案是为了帮助刚开始使用 apache ignite 的人。 从 apache ignite 网站开始使用 apache ignite(src, bin, docker ...) 有很多可能性,其中之一是使用 src 文件。在这种情况下,您需要完全遵循此处提到的内容 https://apacheignite.readme.io/docs/getting-started#building-from-source
来自 apache ignite 网站:
Binary downloads are provided for the convenience of our users and are not official Apache Ignite releases
N.B:src 文件夹包含 DEVNOTES.txt 它提供了生成二进制文件需要遵循的步骤的详细信息。
您正在尝试在下载的 src 文件中启动服务器,而不是在二进制文件中 download.I 遇到了类似的问题,请按照以下步骤解决
转到二进制版本:https://ignite.apache.org/download.cgi 并向下滚动,如屏幕截图所示:
下载二进制版本然后在安装文件夹执行命令:ignite.bat /examples/config/example-ignite.xml
服务器将启动如下:
如果您正在使用 ignite 的二进制分发版并且仍然遇到此错误,那是因为您的 IGNITE_HOME
指向了错误的目录。
How does IGNITE_HOME related to this error?
看一下ignite.sh脚本,如下
if [ "${IGNITE_HOME}" = "" ];
then IGNITE_HOME_TMP="$(dirname "$(cd "$(dirname "[=10=]")"; "pwd")")";
else IGNITE_HOME_TMP=${IGNITE_HOME};
fi
SCRIPTS_HOME="${IGNITE_HOME_TMP}/bin"
...
以上脚本是根据IGNITE_HOME的值判断SCRIPTS_HOME的绝对路径。作为启动的一部分,您可以观察到脚本正在尝试加载出现在 SCRIPTS_HOME 的 CommandLineStartup class。如果 IGNITE_HOME 指向错误的目录并最终抛出此异常,它将找不到 class。