본문 바로가기
개발 툴/eclipse

Eclipse IDE for Java Developers - Java Project 에서, Modulepath 와 Classpath

by doriver 2022. 4. 18.

내가 Modulepath 와 Classpath을 인식하게 된 계기가되는 한가지 일화가 있다

그 일화는 글의 아래부분에 남겨뒀다

 

Java Project  - Java Build Path - Libraries에는 Modulepath 와 Classpath 2가지 로 나뉜다

이둘에대해선 ... 좀 검색을 해봤는데 솔직히 이해가 잘 안된다 ..

나중에 기회되면 다시 공부하려고 한다

 

JRE System Library는 Modulepath에 속해있다

 

Java Project - Java Build Path - Libraries에 있는 Classpath는

workspace에 있는 해당 프로젝트 폴더안 .classpath파일과 연관이 있다

 

.classpath파일을 메모장으로 열어보면

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="~" path="~"/>

 

     ~~

 

</classpath>

이런식으로 되있는데 xml형식으로 되어있다

 

 

 

 


일화

그 사건은 바로

Java Project에서 jsoup을 이용해 웹 크롤링을 연습하려고 했다가 마주한 오류였다

 

JRE System Library [JavaSE-15] 로 되있고
Java Build Path - Libraries - Modulepath에 Add External JARs 통해 jsoup-1.14.3.jar 을 추가해
Referenced Libraries에 jsoup-1.14.3.jar 이 세팅된 상황

 

적절히 코드를 작성해 돌려보니


Exception in thread "main" java.lang.NoClassDefFoundError: org/jsoup/Jsoup
at test01.Ex01.main(Ex01.java:20)

 

Caused by: java.lang.ClassNotFoundException: org.jsoup.Jsoup
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:606)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 1 more

이런 에러가 나온다.... omg

 

근데 다행히도 비교적 쉽게 해결하였다

해결책은 바로
Java Build Path - Libraries - Modulepath 가 아니라 
Java Build Path - Libraries - Classpath에 Add External JARs 했더니 됐다!