Java Zookeeper cli未启动

Java Zookeeper cli未启动,java,apache-zookeeper,Java,Apache Zookeeper,我使用以下软件包在suse上安装了zookeeper v 3.4.9: http://download.opensuse.org/repositories/home:/nicolasbock:/midokura/openSUSE_Leap_42.2/x86_64/zookeeper-3.4.9-1.1.x86_64.rpm 启动服务器工作正常,需要连接到服务器的各种应用程序似乎都能正常工作,但是当我尝试启动客户端时,出现了一个奇怪的错误: zkCli.sh -server 127.0.0.1:

我使用以下软件包在suse上安装了zookeeper v 3.4.9:

http://download.opensuse.org/repositories/home:/nicolasbock:/midokura/openSUSE_Leap_42.2/x86_64/zookeeper-3.4.9-1.1.x86_64.rpm
启动服务器工作正常,需要连接到服务器的各种应用程序似乎都能正常工作,但是当我尝试启动客户端时,出现了一个奇怪的错误:

zkCli.sh -server 127.0.0.1:2181
Error: Could not find or load main class org.apache.zookeeper.ZooKeeperMain
我尝试过在互联网上搜索,但我找到的唯一答案是设置env变量$CLASSPATH。我尝试查看服务启动脚本内部使用的类路径,并将$classpath设置为该值,但没有结果


我正在运行OpenJVM1.8.0_121

您是在Unix还是Windows上进行尝试

我不认为,您需要“-服务器127.0.0.1:2181”


只需运行zkCli.sh或zkCli.cmd,这是一个类路径问题。sh脚本正在尝试启动一个java应用程序,其中主类是ZooKeeperMain。但是,java找不到ZooKeeperMain类文件,因为传递给java的类路径不包含包含ZooKeeperMain类的jar文件

通常,ZooKeeperMain.class文件包含在jar文件中,类似于
$ZOOKEEPER\u HOME/ZOOKEEPER-3.4.13.jar

您可能正在尝试修改zkCli.sh脚本,以便在脚本尝试启动ZooKeeperMain之前打印出类路径。类路径应该包含包含ZooKeeperMain类的jar

在我的Windows 10计算机上,我的类路径如下所示:

/c/Program Files(x86)/Zookeeper/bin/。/build/classes:/c/Program Files(x86)/Zookeeper/bin/。/lib/slf4j-log4j12-1.7.25.jar:/c/Program Files(x86)/Zookeeper/bin/。/lib/netty-3.10.6.Final.jar:/c/Program Files(x86)/Zookeeper/bin/。/lib/log4j-1.2.17.jar:/c/Program Files(x86)/Zookeeper/bin/。/lib/jline-0.9.94.jar:/c/Program Files(x86)/Zookeeper/bin/。/lib/audience-annotations-0.5.0.jar:/c/Program Files(x86)/Zookeeper/bin/。/conf:


在Windows 10计算机上从Git Bash for Windows启动zkCli.sh时,我遇到了与您类似的错误。我的问题是因为Git Bash在类路径中处理通配符的方式。我最初在类路径中有一些
*.jar
条目,我删除了这些条目以启动zkCli.sh。

我今天在Ubuntu 18.04上遇到了这个问题。在zookeper上,一旦一个人遵循给定的镜像链接并选择稳定版本,他可以看到2个可用文件。就我而言,这些是:

  • apache-zookeeper-3.5.5-bin.tar.gz
  • apache-zookeeper-3.5.5.tar.gz
我选择了
apache-zookeeper-3.5.5.tar.gz
,观察到了同样的问题。试图按@Jonathan的建议打印
CLASSPATH
,但打印的是不同的路径,问题是归档文件中不包含zookeper
jar
s,可能希望用户自己将
jar
打包,因为我可以在该归档文件中找到源代码


下载更大的
apache-zookeeper-3.5.5-bin.tar.gz
archive,提取并运行
/zkCli.sh
非常顺利,因为它具备了所有必要的功能,所以无论谁面临同样的问题,都可以尝试一下,看看它是否能为您带来好处。

我在linux、opensus 42上尝试过这个功能。虽然现在我早已摆脱了这个问题,但老实说,我不记得我是如何克服它的。我相信我尝试过在没有显式服务器参数的情况下启动它,但没有得到更好的结果。。。但我不知道,那是很久以前的事了。