我正在尝试使用gfsh启动定位器,但我不断发现找不到主类。

我正在运行:gfsh start locator --name=locator1

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

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


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

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


(我缩写路径)

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

最佳答案

一些东西...


我假设安装在“ root”目录中的Pivotal_GemFire_822(?)是完整的完整发行版(即从Pivotal's Network ... PivNet下载)?


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


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


$ echo $ GEMFIRE

如果看不到任何返回值,则需要获取包含导出内容的shell文件,例如$source ~/.bash_profile


确保对GemFire安装的文件系统权限设置正确。如果您有GemFire 8.2.2。安装在您的主目录(/home/<user>)下,则应该没有问题。
至于JDK tools.jar。默认情况下,它不包括在类路径中。旧的Apple JDK 6(Apple不再支持)在Apple JVM类路径中包含tools.jar类,但常规的Sun / Oracle JDK则没有。还要注意,与JDK不同,JRE在发行版中没有tools.jar。但是,从技术上讲,从GemFire 8.1或8.2开始,它也不是严格要求的。


如果以上所有条件都成立,那么您应该能够启动定位器而不会发生任何事故。请检查这些内容,如果您仍然遇到问题,请告知我们。

有关Shell启动之前Gfsh脚本的功能以及启动Locator的功能的真实的详细技术信息,请参见thisthis

希望这可以帮助。

-约翰

关于java - Gemfire-无法启动定位器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41175016/

10-09 01:42