如何将路径添加到 java class?

How do you prepend paths to a java class?

我正在构建一个较旧的 kafka (0.8.2.2),并且收到有关缺少 java class:

的运行时错误

java.lang.NoClassDefFoundError: org/apache/kafka/common/KafkaException

当我查看 libs/kafka_2.10-0.8.2.2.jar 时,我看到 kafka/common/KafkaException:

的存在
$ jar tf $CLASSPATH  | grep KafkaException
kafka/common/KafkaException.class

因此,构建 (gradlew jar) 构建了 class,但 class 路径的开头缺少 org/apache。我该如何修复路径?

您不能将路径添加到 Java class。路径必须对应包名。在您的情况下,class kafka.common.KafkaException 可在 libs/kafka_2.10-0.8.2.2.jar 中找到,而 org.apache.kafka.common.KafkaException 可在 libs/kafka-clients-0.8.2 中找到.2.jar.

您还必须在 class 路径中包含 libs/kafka-clients-0.8.2.2.jar。