문제
TOP 구동이 안된다......
java.lang.ClassNotFoundException: org.eclipse.osgi.compatibility.state.Activator
at java.net.URLClassLoader.findClass(Unknown Source)
ClassNotFoundException이 뭔데?
Class.forName method
ClassLoader.findSystemClass method
ClassLoader.loadClass method
Class Loader가 뭔데?
[ Oracle Docs 해석 ]
Class Loader 는 클래스 로딩을 책임지는 object이다. ClassLoader는 추상클래스이다. class의 binary 이름이
주어지면, ClassLoader는 클래스 정의를 구성하는 데이터(변수, 함수 얘기하는건가? )를 생성하거나 배치시켜야
한다. 전형적인 방법은 주어진 이름을 파일 이름으로 변경하고, 파일 시스템에서 해당 이름의 class file을 읽어
오는 것이다.
모든 Class 객체는 자기 자신을 정의하고 있는 ClassLoader에 대한 참조를 포함하고 있다. - (1)
ClassLoader는 class와 resource를 찾기 위해 delegation(위임) 모델을 사용한다. 각각의 classLoader는 관련된
부모 classLoader를 가지고 있다. class를 자기 자신이 찾기 전에 부모 classLoader에게 class 탐색을 위임한다.
가상머신에서 만들어지는 classLoader ( bootstrap class loader ) 는 부모 classLoader 가 없다.
( JDK 1.1 부터 수정된 내용 ) - (2)
(1) Class.forName("FindMedian") 내부에 있는 class loader
자바에서 제공해주는 ClassLoader
1. java.net.URLClassLoader : 지정한 URL로부터 클래스를 로딩할 수 있게 해준다. 즉, 파일 시스템, HTTP, FTP를
비롯한 모든 형태의 URL로부터 클래스를 로딩할 수 있다.
2. http://javacan.tistory.com/entry/2
'Java' 카테고리의 다른 글
#java.util.ConcurrentModificationException 이슈 (0) | 2017.10.30 |
---|---|
Memory leak 문제 해결 (0) | 2017.09.18 |
export Jar (0) | 2017.08.21 |
Interface를 이용하여 Callback 구현하기 (0) | 2017.06.03 |
close() 함수 (0) | 2017.05.11 |