我正在使用Kafka Streams,我已经运行了找到here的示例流,这很好用。我想知道是否有办法替换以下命令,
./bin/kafka-run-class org.apache.kafka.streams.examples.wordcount.WordCountDemo
使用一个在Github上使用本地文件而不是此源的文件。我尝试从Github复制文件并将其放在本地文件streams
中,如下所示:
./bin/kafka-run-class ./streams/WordCountDemo.java
但是它给了我以下错误消息:
Error: Could not find or load main class ..streams.WordCountDemo.java
答案 0 :(得分:0)
行。 @Pastafari和我说同样的话。
一个。将源的目标目录添加到类路径中。这是您的.class文件所在的位置。
B中。运行使用wordCount类的“./bin/kafka-run-class org.apache.kafka.streams.examples.wordcount.WordCountDemo”。
一切都在运行......
答案 1 :(得分:0)
您的想法:
Kafka正在使用HTTP从GitHub获取文件WordCountDemo
,并将其用作类。
这不是正在发生的事情。
实际发生的事情:
Kafka正在向Java询问一个名为org.apache.kafka.streams.examples.wordcount.WordCountDemo的类。
如果你这样做,你会得到完全相同的课程:
import org.apache.kafka.streams.examples.wordcount.WordCountDemo;
...
WordCountDemo demo = new WordCountDemo(...);
在此命令行中,您没有import
语句或类似语句,因此您使用包含该包的完全限定类名。
Java在其类加载器中搜索文件系统右侧的WordCountDemo.class
文件。
它很可能位于类路径某处的.jar
文件中。
您可以通过编译来创建自己的类(并可选择将其放入JAR中)。
这与普通的Java类加载没什么不同 - 在任何介绍性的Java书籍或教程中都可以阅读它。