Gemfire - 无法启动定位器

Gemfire - Cannot start locator

我正在尝试使用 gfsh 启动定位器,但我一直发现无法找到主 class。

我是运行这个:gfsh start locator --name=locator1

在此之后我得到以下错误:

Error: Could not find or load main class com.gemstone.gemfire.distributed.LocatorLauncher

对我来说,这意味着在 class 找到该 jar 的路径上缺少某些东西。我的 classpath 上有这些:

export JAVA_HOME=/Java/jdk1.8.0_111    
export GEMFIRE=/Pivotal_GemFire_822
export GF_JAVA=$JAVA_HOME/bin/java

(我缩写了路径)

设置文档还说您需要 tools.jar 包含在 class 路径中的 JDK 中。我这样做了,但没有任何区别。我认为无论如何都会包含在 JAVA_HOME 中。

一些事情...

  1. 我假设 "root" 中的 Pivotal_GemFire_822 安装 (?) 是一个完整的完整发行版(即从 Pivotal 的网络... PivNet 下载)?

com.gemstone.gemfire.distributed.LocatorLauncher class 包含在 $GEMFIRE/lib/gemfire.jar 中。确保 gemfire.jar 存在并且您可以在 JAR 文件中找到此 class(使用 jar -tvf $GEMFIRE/lib/gemfire.jar | less 然后在 (:) 中搜索“LocatorLauncher”)。

  1. 还要确保您的 $GEMFIRE 环境变量确实在当前 shell 会话中设置...

$回声$GEMFIRE

如果您没有看到任何返回值,那么您需要获取包含导出的 shell 文件,例如$source ~/.bash_profile.

  1. 确保正确设置了 GemFire 安装的文件系统权限。如果你有 GemFire 8.2.2。安装在您的主目录下 (/home/<user>) 那么这应该不是问题。

  2. 至于JDKtools.jar。默认情况下,这不包含在 class 路径中。旧的 Apple JDK 6(不再受 Apple 支持)在 Apple JVM class 路径上包含 tools.jar classes,但常规 Sun/Oracle JDKs 没有。另请注意,与 JDK 不同,JRE 在发行版中没有 tools.jar。但是,从技术上讲,从 GemFire 8.1 或 8.2 开始,它也不是严格要求的。

如果以上都成立,那么您应该可以顺利启动定位器。请检查这些内容,如果问题仍然存在,请告诉我们。

有关 Gfsh 脚本在 shell 启动之前执行的操作以及启动定位器的操作的真正详细技术信息,请参阅 this and this

希望这对您有所帮助。

-约翰