런타임에 클래스 경로를 동적으로 업데이트해야하는 수명이 긴 프로그램이 있습니다.Classloading을 저장, 추가, 복원 할 수 있습니까?
문제 없음 - 클래스 로더는 URLClassLoader이며 'addURL'메소드를 호출합니다. 이 모든 것이 하나의 '업데이트'반복에 효과적입니다.
나중에 '업데이트'가 도착하면 원본 클래스 경로를 복원하고 업데이트 된 항목으로 'addURL'을 호출하는 과정을 반복하고 싶습니다. 그런 다음이 과정은 며칠/주 후에 반복됩니다. 원래의 클래스 로더를 복제합니까? 내가 할 수있는 일이 가능한거야? 누군가가 이미 말할 수없는 것처럼, 나는 클래스 로더로 많은 것을하지 않고 손실이 큽니다. Java jar 파일에서 Groovy를 실행하고 있으므로 Java가 직접 실행되거나 Groovy 솔루션이 작동합니다! 아래 질문 당
편집
. 계속 올바르게 실행하려면 클래스 패스에 적용한 원래 변경 사항을 '플러시'해야합니다. 그렇지 않으면 업데이트 후에 부주의로 픽업 될 수 있습니다. 또한 클래스 패스에 여러 개의 동일한 항아리 버전을 동시에 설치하는 것에 대해 우려하고 있습니다. 예 : 첫 번째로드에서는 myJar1, myJar2 및 log4j (< - 즉 내 jar 파일 중 하나가 아닌)를 추가하고 다음 업데이트에서 myJar1 및 myJar2의 업데이트 된 버전과 myJar3 및 log4j를 추가해야 할 수도 있습니다. . 그게 더 합리적입니까?
원본 클래스 경로를 복원하는 이유는 무엇입니까? –