为了账号安全,请及时绑定邮箱和手机立即绑定

无法在 Windows 上使用 kafka-run-class.bat 运行类

无法在 Windows 上使用 kafka-run-class.bat 运行类

白板的微信 2023-09-06 16:40:05
我使用 KafkaStream API 创建了一个演示应用程序。尝试使用 kafka-run-class.bat 文件运行应用程序,但出现错误“无法找到或加载主类 com.kafka.StreamApp”这是我的课程的路径:“C:\Users\ankit.srivastava\eclipse-workspace\kafka-demo\src\main\java\com\kafka”我已将 CLASSPATH 环境变量设置为:“C:\Users\ankit.srivastava\eclipse-workspace\kafka-demo\src\main\java”我尝试运行命令从“C:\Users\ankit.srivastava\Documents\Kafka\kafka”启动应用程序:“bin\windows\kafka-run-class.bat com.kafka.StreamApp”public class StreamApp {public static void main(String[] args) {    Properties props = new Properties();    props.put(StreamsConfig.APPLICATION_ID_CONFIG, "wordcount-application");    props.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");    props.put(StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIG, Serdes.String().getClass());    props.put(StreamsConfig.DEFAULT_VALUE_SERDE_CLASS_CONFIG, Serdes.String().getClass());    StreamsBuilder builder = new StreamsBuilder();    KStream<String, String> textLines = builder.stream("TextLinesTopic");    KTable<String, Long> wordCounts = textLines        .flatMapValues(textLine -> Arrays.asList(textLine.toLowerCase().split("\\W+")))        .groupBy((key, word) -> word)        .count(Materialized.<String, Long, KeyValueStore<Bytes, byte[]>>as("counts-store"));    wordCounts.toStream().to("WordsWithCountsTopic", Produced.with(Serdes.String(), Serdes.Long()));    KafkaStreams streams = new KafkaStreams(builder.build(), props);    streams.start();}}由于我的项目文件夹已添加到 CLASSPATH 变量批处理脚本应该找到该类并启动应用程序,但给出错误“无法找到或加载主类 com.kafka.StreamApp”
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

您不需要 kafka-run-class 来运行您自己的 Consumer 或 Producer。您应该能够部署和运行您的代码,而无需依赖于在任何计算机上安装 Kafka。

java话虽这么说,您只需像平常一样使用 即可运行代码。

关于您的错误,它不是特定于卡夫卡的。简单地说,您已将 CLASSPATH 指向 Java 文件,而不是已编译的类文件。

根据文件的路径,似乎您可能正在使用 Maven 或 Gradle,所以我建议使用从这些文件构建的 JAR 文件

根据您之前的问题,我建议使用 Spring-Kafka 或 Spring Cloud Streams 来简化代码的配置


查看完整回答
反对 回复 2023-09-06
  • 1 回答
  • 0 关注
  • 69 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信