Как скомпилировать и выполнить приложение Java без IDE? - PullRequest
2 голосов
/ 21 марта 2019

Я использую Intellij Idea для разработки этого простого Java-приложения ниже. Когда я выполняю его из IDE, это работает. Но если я скомпилирую и выполню с терминала Linux, я получу это:

# javac -classpath kafka-clients-1.1.0.jar prova.java 
# java prova -classpath kafka-clients-1.1.0.jar
Error: mpossible to initialize the main test class
Caused by: java.lang.NoClassDefFoundError: org/apache/kafka/clients/producer/Callback

import java.util.Properties;

import org.apache.kafka.clients.producer.Callback;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.RecordMetadata;

public class prova {
    public static void main(String[] args) {
        System.out.println("start");

        Properties properties = new Properties();
        properties.setProperty("bootstrap.servers", "127.0.0.1:9092");
        properties.setProperty("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        properties.setProperty("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

        // Crea producer:
        KafkaProducer<String, String> producer = new KafkaProducer<String, String>(properties);

        try
        {
            producer.send(new ProducerRecord<String, String>("topicthreepart", "chiave4" , "buonasera" ), new Callback() {
                public void onCompletion(RecordMetadata metadata, Exception e) {
                    if (e != null) {
                        System.out.println("wrong");
                    } else {
                        System.out.println("correct");
                        System.out.println("timestamp: "+ metadata.timestamp());
                        System.out.println("topic: "+ metadata.topic());
                        System.out.println("offset: "+ metadata.offset());
                        System.out.println("partition: "+ metadata.partition());
                    }
                }
            }).get();
        }
        catch (Exception ex)
        {
            System.out.print(ex.getMessage());
        }


    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...