【问题标题】:Not able to run a class using kafka-run-class.bat on windows无法在 Windows 上使用 kafka-run-class.bat 运行类
【发布时间】:2019-09-27 14:47: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"

【问题讨论】:

    标签: java apache-kafka classpath


    【解决方案1】:

    你不需要 kafka-run-class 来运行你自己的 Consumer 或 Producer。您应该能够在不依赖于任何机器上安装 Kafka 的情况下部署和运行您的代码。

    话虽如此,您可以像往常一样使用java 运行代码。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-24
      • 2020-06-09
      • 1970-01-01
      • 2020-12-15
      • 2019-08-08
      • 2023-03-31
      • 2020-02-02
      相关资源
      最近更新 更多