java.lang.NoClassDefFoundError:org / apache / kafka / clients / producer / Producer

时间:2019-05-30 19:18:32

标签: java gradle apache-kafka

我正在尝试使用Kafka:

import java.util.Properties;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;

public class SimpleProducer {
    public static void main(String[] args) {
        Properties props = new Properties();
        Producer<String, String> producer = new KafkaProducer<String, String>(props);
    }
}

但是出现以下错误:

  

java.lang.NoClassDefFoundError:   org / apache / kafka / clients / producer / Producer

build.gradle:

...

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile group: 'org.apache.kafka', name: 'kafka-clients', version: '2.2.0'
}

...

2 个答案:

答案 0 :(得分:0)

在gradle的依赖项中使用以下内容。您必须为此使用kafka客户端。

compile group: 'org.apache.kafka', name: 'kafka-clients', version: '0.11.0.3'

您可以从https://mvnrepository.com/

获取所有这些信息。

答案 1 :(得分:0)

我跑了

java -jar TestProejct-1.0-SNAPSHOT.jar -cp "D:\Software\kafka_2.12-2.2.0\libs\kafka-clients-2.2.0.jar"

有几个问题:

  1. java不能同时容纳-jar和-cp,因此除了Kafka之外,我还必须将jar包含在类路径中。
  2. 我必须指定要运行的主类。
  3. 从Kafka导入的罐子不止一个,所以我必须指定* inkad kafka-clients-2.2.0.jar。

这解决了问题:

java -cp "D:\Software\kafka_2.12-2.2.0\libs\*;TestProejct-1.0-SNAPSHOT.jar" SimpleProducer