我正在尝试使用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中。
答案 0 :(得分:1)
一些事情......
Pivotal_GemFire_822
类包含在com.gemstone.gemfire.distributed.LocatorLauncher
中。确保$GEMFIRE/lib/gemfire.jar
存在,并且您可以在JAR文件中找到此类(使用gemfire.jar
,然后搜索(jar -tvf $GEMFIRE/lib/gemfire.jar | less
)" :
" )。
$ echo $ GEMFIRE
如果您没有看到任何返回的值,那么您需要获取包含导出的shell文件,例如: LocatorLauncher
。
确保您的GemFire安装的文件系统权限已正确设置。如果你有GemFire 8.2.2。安装在您的主目录($source ~/.bash_profile
)下,这应该不是问题。
至于JDK /home/<user>
。默认情况下,它不包含在类路径中。旧的Apple JDK 6(Apple不再支持)包含Apple JVM类路径上的tools.jar类,但常规的Sun / Oracle JDK却没有。另请注意,与JDK不同,JRE在发行版中没有tools.jar。但是,从技术上讲,GemFire 8.1或8.2也没有严格要求。
如果以上都是真的,那么你应该能够毫无意外地启动定位器。请检查这些事情,如果您仍然有问题请告诉我们。
有关Gfsh脚本在shell启动之前所执行操作的详细技术信息以及启动定位器的操作,请参阅this和this。
希望这有帮助。
-John