참고 : 저는 프로그래밍에 익숙하지 않습니다. 잘못된 용어 사용에 신경 쓰지 않기를 바랍니다. :-)클래스를 원격으로로드 할 때 IllegalAccessError가 발생하는 이유는 무엇입니까?
클래스를 원격으로로드하려고합니다. 클래스가 다운로드되고 올바르게 시작된 것 같지만 메서드 중 하나를 호출 할 때 IllegalAccessError가 발생합니다. 여기 내가 로컬에서하는 일이 있는데, 이것은 오류없이 100 % 작동합니다.
(Parent) instance = (Parent)Class.forName("somepackage.ChildClass").newInstance();
instance.callSomeMethod();
다음은 원격으로로드하는 방법입니다. 이것은 "클래스 ChildClass에에서 필드 Parent.field에 액세스하려고"더 구체적으로 ,있는 IllegalAccessError를 제공
URLClassLoader classLoader = new URLClassLoader(new URL[] { new URL("http://mysite.com/classes/") });
(Parent) instance = (Parent)classLoader.loadClass("somepackage.ChildClass").newInstance();
instance.callSomeMethod();
는 또한 모든 로컬 클래스가 원격/인터넷 것과 동일하다는 것을 나는 다운로드하지 않으려는 점에 유의하시기 바랍니다 파일을 내 클래스 경로에 저장하십시오.