类路径为空。请先建项目
Posted
技术标签:
【中文标题】类路径为空。请先建项目【英文标题】:classpath is empty. please build the project first 【发布时间】:2016-03-08 23:20:21 【问题描述】:我试图在 Windows 机器上运行 Kafka,当我尝试启动 zookeeper 时,我遇到了这个奇怪的错误:
类路径为空。请先构建项目,例如通过运行“gradlew jarall”
【问题讨论】:
我遇到了同样的问题。当您下载和使用源下载而不是二进制下载时会出现问题。 下载二进制文件并编辑 server.properties 文件似乎是解决方案。 以上解决方案都没有帮助。我从这个链接下载了二进制文件(kafka_2.12-2.5.0.tgz):mirror.cc.columbia.edu/pub/software/apache/kafka/2.5.0 并且成功了。 检查此修复i-am-jabi.medium.com/fixing-classpath-is-empty-69288c1509a2 【参考方案1】:在这里,我认为您下载了 kafka 源。你需要下载二进制文件
https://www.apache.org/dyn/closer.cgi?path=/kafka/0.9.0.0/kafka_2.11-0.9.0.0.tgz
【讨论】:
嗨 Sreejith...我下载了二进制文件本身...我已经提取了它 那么我认为你应该在 kafka-run-class.bat 中添加 echo %CLASSPATH% 并找出为什么 lib 中的 jars 没有添加到你的类路径中【参考方案2】:对于 windows 和 kafka 0.9.0.0,请按照以下步骤操作(相同的步骤将适用于较低版本的 kafka) 首先从以下位置下载二进制文件: https://www.apache.org/dyn/closer.cgi?path=/kafka/0.9.0.0/kafka_2.11-0.9.0.0.tgz
解压到您的特定文件夹,然后
第 1 步:在您的 kafka 目录中创建新目录
- kafka-logs
- zookeeper
您在第 1 步之后的目录将是:
- bin
- config
- kafka-logs
- libs
- site-docs
- zookeeper
第 2 步:打开 config/server.properties 并更改以下属性
- log.dirs=fullpath/kafka-logs
第 3 步:打开 config/zookeeper.properties 并更改 belwo 属性
- dataDir=fullpath/zookeeper
第四步:在 bin/windows 文件夹下创建一个 run.bat 文件,脚本如下:
start zookeeper-server-start.bat ..\..\config\zookeeper.properties
TIMEOUT 10
start kafka-server-start.bat ..\..\config\server.properties
exit
为方便起见,您可以更改超时时间。
【讨论】:
亲爱的接受答案,如果这对你有用。也让我们知道您在哪些窗口上运行? 嗨,乌斯曼...我有点忙于其他工作。我会尝试解决方案并更新您。 这东西真的好用!!! Tnx 很多!【参考方案3】:我按照链接https://janschulte.wordpress.com/2013/10/13/apache-kafka-0-8-on-windows/ 配置了kafka,并且成功了。但是我使用了与帖子中提到的相同版本(这是旧版本)。现在我的项目需要 kafka,所以决定继续使用这个版本。
作者在解释中遗漏了几件事。请在下面找到它们
1) 下载 sbt windows 安装程序后,不仅需要重新启动系统,还需要重新启动系统以反映必要的更改
2)在kafka-run-class.sh的第66,67行添加以下内容
JAVA="java"
$JAVA $KAFKA_OPTS $KAFKA_JMX_OPTS -cp cygpath -wp $CLASSPATH
"$@"
(确保您的 java 已在环境变量中配置)
3) 遍历到合适的路径,运行zookeeper命令 bin/zookeeper-server-start.sh config/zookeeper.properties
如果您有任何疑问,请标记我!乐于助人!
【讨论】:
Aravind Krishnakumar 感谢您的帮助...我正忙于其他工作..将尝试解决方案并尽快更新您。【参考方案4】:使用 Windows 10:
下载并解压bin kafka并更改config/server.properties;对我来说,它改变了
log.dirs=/tmp/kafka-logs
到
log.dir= D:\Elastic_search\kafka_2.11-0.9.0.0\kafka-logs
创建新目录kafka-logs
。
运行
.\bin\windows\kafka-server-start.bat .\config\server.properties
在您的根 kafka_2.11-0.9.0.0 文件夹中使用 CMD“再次”
【讨论】:
【参考方案5】:如果其他人遇到这个问题:
注意:不要从 appache kafka 下载源文件,下载二进制文件 从这里下载 Kafka:Link 也可以关注link 了解更多信息 此外,这个group 有一些额外的信息【讨论】:
这是否意味着我们不得不使用 Scala,因为所有二进制下载都只能用于 scala? 在下载二进制文件时,我仍然遇到与 OP 相同的错误.....【参考方案6】:我遇到了完全相同的问题,我终于解决了。 问题是您的路径(文件夹名称内)中有空格字符,这导致“dirname”命令接收多个参数。
因此,为了解决,您只需要从 Kafka 文件夹路径中的文件夹名称中删除空格即可。
【讨论】:
【参考方案7】:我遇到了同样的问题。同时下载 zookeeper tar 文件。 在同一个文件夹中下载 zookeeper,然后输入相同的命令对我有用。
【讨论】:
【参考方案8】:如果您使用 Kafka 源在 Windows 10 机器上运行 Kafka 服务器。我们需要先使用以下步骤构建源代码。
请注意:在执行以下步骤之前,我们需要安装 gradle 构建工具并设置路径变量。
打开命令提示符并导航到 Kafka 主目录
C:\kafka-1.1.1-src>
输入命令'gradle'并回车
C:\kafka-1.1.1-src>gradle
构建成功后输入以下命令
C:\kafka-1.1.1-src>gradlew jar
现在输入以下命令启动服务器
C:\kafka-1.1.1-src>.\bin\windows\kafka-server-start.bat .\config\server.properties
如果一切顺利,您的命令提示符将如下所示
【讨论】:
感谢@Rajesh,即使第 2 步顺利完成,第 3 步对我也不起作用——在 13 秒内构建成功;在第 3 步中我得到: gradlew 不被识别为内部或外部命令.... 如果安装了 gradle 并且在您的机器上设置了 gradle 路径,只需将 gradlew 替换为 gradle。【参考方案9】:请确保您使用的zookeeper.properties
文件路径正确。在我的情况下,我使用了 .bat
文件的完整路径和 .properties
文件的错误相对路径。
zookeeper.properties
的路径错误会产生您提到的错误。
请注意,我使用的是二进制文件,而不是 kafka 源代码。
【讨论】:
【参考方案10】:我发现我使用的先前版本的 \bin\windows\kafka-run-class.bat 中缺少下面添加到 Classpath 的代码位。 (汇合 4.0.0 与 5.3.1)
rem Classpath addition for LSB style path
if exist %BASE_DIR%\share\java\kafka\* (
call :concat %BASE_DIR%\share\java\kafka\*
)
【讨论】:
嗨!我看到你是一个新的贡献者。欢迎 !为了澄清您的答案,您能否详细说明为什么您认为这可以解决问题?如果您不是代码片段的作者,指向原始源代码也很有帮助!谢谢! 当我在没有设置 Classpath 的计算机上尝试时,我会收到上述错误。如果我硬编码一个类路径,我会得到“错误:无法找到或加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain”。检查 kafka-run-class.bat 显示了带有 rem Classpath 添加的几个部分...,但我在下载的文件集中没有任何它正在检查的文件夹。 (汇合 5.3.1 与 kafka 2.12。当我在 kafka-run-class.bat 上方添加代码的 sn-p 时,exist %BASE_DIR%\share\java\kafka* 为真,我的 Classpath 不再为空白。 必须在代码之前添加 sn-p - 如果未定义 CLASSPATH ( echo Classpath 为空。请先构建项目,例如运行 'gradlew jarAll' 您可以在此融合归档 tar 中的 kafka-run-class-bat 的第 97 行找到您为我修复它的代码。 packages.confluent.io/archive/4.0/confluent-4.0.0-2.11.tar.gz【参考方案11】:按照以下步骤解决此错误。
第一步:进入kafka下载文件夹
cd kafka-2.5.0-src
第二步:运行gradle
./gradlew jar
step3:构建成功后,启动kafka server
bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties
现在 Kafka 将在 localhost:9092 上启动
【讨论】:
【参考方案12】:对我来说,问题在于解压缩文件时。我将它们移动到另一个文件夹,但出了点问题。我再次解压缩并保留目录结构,它工作了。
感谢 orlando mendez 的建议! https://www.youtube.com/watch?v=7F9tBwTUSeY
【讨论】:
【参考方案13】:遇到了同样的问题,这是因为我下载的是源文件而不是二进制文件。
【讨论】:
非常感谢您的评论!它拯救了我的一天:)【参考方案14】:当 Kafka 文件夹路径的长度很长时,这发生在我身上。尝试使用较短的路径,例如“D:\kafka_2.12-2.7.0”
【讨论】:
【参考方案15】:确保您的文件夹层次结构中没有空格
例如: 而不是 -> "c:\desktop\work files\kafka_2.12-2.7.0"
使用这个 -> "c:\desktop\work-files\kafka_2.12-2.7.0"
这对我有用!
【讨论】:
【参考方案16】:请下载二进制包,而不是源代码。
【讨论】:
【参考方案17】:确保没有空格或特殊字符
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案18】:第 1 步:导航到 \confluent-community-5.5.0–2.12\confluent-5.5.0\bin\windows 文件夹。
第 2 步:打开 kafka-run-class.bat 文件。
第 3 步:在此 bat 文件中搜索 rem Classpath 添加核心
第 4 步:现在,只需将以下代码添加到核心行的 rem 类路径添加上方即可。
rem classpath addition for LSB style path
if exist %BASE_DIR%\share\java\kafka\* (
call:concat %BASE_DIR%\share\java\kafka\*
)
【讨论】:
以上是关于类路径为空。请先建项目的主要内容,如果未能解决你的问题,请参考以下文章
当 Woocommerce 购物车为空时,向项目添加 CSS 类