카테고리 없음

컴파일 및 lib find하는 방법

saay-hi 2024. 8. 7. 15:10

>>[kafka@localhost kafka]$ javac  ConsumerBasic.java      --> java파일 컴파일

#import 파일 위치를 아는 경우

Javac -cp "kafka_2.13-3.6.0/libs/kafka-clients-3.6.0.jar" ConsumerBasic.java
      (파일 위치)                                         (컴파일하려는 java 파일)

#컴파일 실행
Java -cp "kafka_2.13-3.6.0/libs/kafka-clients-3.6.0.jar":. ConsumerBasic

#import 파일이 없거나 위치를 모르는 경우

ConsumerBasic.java:1: error: package org.apache.kafka.clients.consumer does not exist
import org.apache.kafka.clients.consumer.ConsumerRecord; 
                                        ^
ConsumerBasic.java:2: error: package org.apache.kafka.clients.consumer does not exist
import org.apache.kafka.clients.consumer.ConsumerRecords;
                                        ^
ConsumerBasic.java:3: error: package org.apache.kafka.clients.consumer does not exist
import org.apache.kafka.clients.consumer.KafkaConsumer;
                                        ^
ConsumerBasic.java:4: error: package org.apache.kafka.common.serialization does not exist
import org.apache.kafka.common.serialization.StringDeserializer;
                                            ^
ConsumerBasic.java:20: error: cannot find symbol
KafkaConsumer<String, String> consumer = new KafkaConsumer<String, String>(props);
      ^
symbol:   class KafkaConsumer
location: class ConsumerBasic
ConsumerBasic.java:20: error: cannot find symbol
KafkaConsumer<String, String> consumer = new KafkaConsumer<String, String>(props);
                                                     ^
 symbol:   class KafkaConsumer
location: class ConsumerBasic
ConsumerBasic.java:24: error: cannot find symbol
ConsumerRecords<String, String> records = consumer.poll(100);
                ^
symbol:   class ConsumerRecords
location: class ConsumerBasic
ConsumerBasic.java:26: error: cannot find symbol

                for (ConsumerRecord<String, String> record : records) {

                     ^

  symbol:   class ConsumerRecord

  location: class ConsumerBasic

8 errors

 

=====

ConsumerRecord ?

:

[kafka@localhost kafka]$ grep org.apache.kafka.clients.consumer.ConsumerRecord `find . -name "*.jar"`    (java jar파일)

Binary file ./kafka_2.13-3.6.0/libs/kafka-clients-3.6.0.jar matches

--

[kafka@localhost kafka]$ grep org.apache.kafka.common.serialization.StringDeserializer `find . -name "*.jar"`

Binary file ./kafka_2.13-3.6.0/libs/kafka-clients-3.6.0.jar matches

 

====

[kafka@localhost kafka]$ java -cp "kafka_2.13-3.6.0/libs/kafka-clients-3.6.0.jar":. ConsumerBasic   (ConsumerBasic 실행)

Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory

        at org.apache.kafka.common.utils.Utils.<clinit>(Utils.java:107)

        at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:652)

        at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:632)

        at ConsumerBasic.main(ConsumerBasic.java:20)

Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory

        at java.net.URLClassLoader.findClass(URLClassLoader.java:387)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)

        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)

        ... 4 more

[kafka@localhost kafka]$ grep org.slf4j.LoggerFactory `find . -name "*.jar"`  ( lib 빠진 찾기)

Binary file ./kafka_2.13-3.6.0/libs/slf4j-api-1.7.36.jar matches