我使用 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 來簡化代碼的配置
添加回答
舉報
0/150
提交
取消