我正在尝试使用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的功能的真实的详细技术信息,请参见this和this。
希望这可以帮助。
-约翰
关于java - Gemfire-无法启动定位器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41175016/