2011-12-27 3 views
0

스레드가 실행되는 동안 스레드의 컨텍스트 클래스 로더를 변경할 수 있습니까? run() 함수 내에서 컨텍스트를 설정 하시겠습니까?실행 중 컨텍스트 ClassLoader 변경

Google을 통해 답변을 검색했지만 아무것도 찾을 수 없습니다.

+3

왜 그렇게하고 싶습니까? '변화하는 클래스 로더'가 제공하는 프로그램 기능은 무엇입니까? –

+0

사실, 나는 모른다. 나는 기존의 코드에서 그것을 보았고 코드 조각의 목표를 조사하기 전에 불법이라고 생각했다. ... – Jonathan

답변

2

보안 관리자가 허용하는 경우 Thread.setContextClassLoader()를 사용할 수 있습니다. 매우 혼란스러운 결과를 가져올 수 있으므로 매우 조심해야하며 얻는 경향이있는 오류 메시지가 항상 도움이되는 것은 아닙니다.

다른 클래스 로더를 사용하여 새 스레드를 시작하는 것이 좋습니다.

+0

그래서 ... run() 함수 내에서 컨텍스트 클래스 로더를 변경할 수 있습니까? 그것은 합법적입니까? 이제 스레드가 다른 클래스 로더를 사용하여 클래스를로드 할 때 클래스를 새 클래스 로더에로드합니다. – Jonathan

+0

BTW, 나는 어떤 조언이 필요하지 않습니다; 그것은 내가 작성한 코드가 아닙니다. 나는 단지 그것이 합법적인지 알고 싶다. – Jonathan

+0

합법적이지만 까다로운이 방법으로 IMHO를 올바르게 얻으십시오. 일이 생기면 걱정하지 않을 것입니다. 이상한 캐스트 오류가 발생하면 원인이 될 수 있습니다. –

관련 문제