类路径为空。请先建项目

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\*
)

【讨论】:

以上是关于类路径为空。请先建项目的主要内容,如果未能解决你的问题,请参考以下文章

Django ImageField 为空时覆盖现有路径

当 Woocommerce 购物车为空时,向项目添加 CSS 类

pringboot热部署导致applicationContext获取为空

利用StringUtils工具类进行String为空的判断

C#怎么判断项目中的一个txt为空(根据长度判断)

springboot项目上传文件出现临时文件目录为空