본문 바로가기

Eclipse/Error

java.lang.ClassNotFoundException: jdk.nashorn.internal.runtime.ECMAException cannot be found by org.eclipse.wst.jsdt.core

문제



  • java.lang.NoClassDefFoundError: jdk/nashorn/internal/runtime/ECMAException
  • java.lang.ClassNotFoundException: jdk.nashorn.internal.runtime.ECMAException cannot be found by org.eclipse.wst.jsdt.core_2.0.0.v201605200022



원인




ClassLoader가 제대로 동작하지 않음


 ( 클래스로더에 대한 공부 - http://happyer16.tistory.com/94 )


Nashorn 은 Java 8+ <java-home>/lib/ext 폴더에 있는 자바스크립트 런타임 라이브러리이다.

이클립스 플러그인들은 Boot class loader를 사용하는데, 이는 lib/ext를 제외한다.

JSDT.core는 Nashorn을 사용하기 때문에, JSDT 팀에서 lib/ext에 있는 걸 로드하기 위해 몇가지 방법을 제안한다.



해결 - override the createClassLoader



 https://wiki.eclipse.org/Adaptor_Hooks 공부 필요...

 -Dosgi.framework.extensions=org.eclipse.wst.jsdt.nashorn.extension