2010-01-18 1 views
0

Java 프로그램이 런타임에 클래스를 동적으로로드합니다. 모든 수업은 같은 항아리에 있습니다.Java : jar 파일이 갱신되는 동안 클래스를로드하십시오.

새 jar 파일을 배포 한 후 jar 파일이 복사되는 동안 오류가 발생하는 경우가 있습니다 (NoClassDefFoundError 등). 이것은 다음에 프로그램을 실행하면 사라집니다. 항아리를 업데이트 할 때 내 프로그램이 영향을받지 않도록 클래스를 미리로드하는 방법이 있습니까?

모든 클래스의 인스턴스를 만든 다음 복제 할 수 있다고 생각합니다.하지만 더 좋은 방법이 있을까요?

+0

귀하의 앱이 다이나믹하게 클래스를로드하는 방법을 설명합니다 (단순히 "Class.forName")? 또는 갱신 된 항아리를 동적으로 다시로드하려면 더 복잡한 무언가입니까? 이 경우 파일 경로를 기다리지 않고 새 클래스 경로를 변경하기 위해 dir 이름을 바꿀 수 있습니다. 아니면 자신의 클래스 - 로더를 사용하여 (그것은 어렵지 않아, 내가 당신을 안내 할 수) – helios

+0

나는 사용자 정의 클래스 로더를 시도 할 수 있습니다 생각합니다. 나는 몇몇 기사를 읽고 이것에 약간 시간을 소요하기 위하여 재미 있어야한다. – AnonCow

답변

1

모든 클래스를로드하더라도 리소스에서 오류가 발생할 수 있습니다.

가능한 한 다른 위치에 배포하는 것이 좋습니다. 또는 클래스 로딩을 관리 할 수있는 경우 jar 파일을 임시 파일 (예 : http URL에 대해 자동으로 수행됨)이나 메모리에 복사하십시오.