하둡(Hadoop) 관련 프로그램을 작성하다가 다음과 같은에러를 만나게 되었다.
Exception in thread "main" java.lang.IllegalAccessException: Class org.apache.hadoop.util.RunJar can not access a member of class TestClass with modifiers "public static"
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:110)
at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:262)
at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:254)
at java.lang.reflect.Method.invoke(Method.java:599)
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
main() 메소드를 실행하려고 shell 스크립트를 작성했는데 위와 같은 에러가 발생했다.
위 에러를 만났을 때 실행하려고하는 클래스가 public class 로 선언되었는지 확인한다. private 클래스이거나 package-private 클래스인 경우 관련 코드를 실행할 때 에러가 발생할 수 있다.
댓글