런타임에 JAR 파일 다시 로드 및 로드
Java 시스템이 실행 중에 클래스를 로드하고 다시 로드할 수 있도록 하려면 다음을 고려하세요.
기존 항목 새로고침 클래스
기존 클래스에 데이터를 다시 로드하는 것은 시스템이 불안정해질 수 있으므로 일반적으로 권장되지 않습니다.
새 클래스 추가
새 클래스를 별도의 클래스 로더에 로드하는 것이 가능합니다. 옵션:
ClassLoader loader = URLClassLoader.newInstance(new URL[] { yourURL }, getClass().getClassLoader()); Class<?> clazz = Class.forName("mypackage.MyClass", true, loader); Class<? extends Runnable> runClass = clazz.asSubclass(Runnable.class); Constructor<? extends Runnable> ctor = runClass.getConstructor(); Runnable doRun = ctor.newInstance();
클래스 로더 가비지 수집
메모리 누수가 없다는 가정하에 더 이상 사용되지 않는 클래스 로더는 가비지 수집기에 의해 회수될 수 있습니다( ThreadLocal, JDBC 드라이버 등에서 발생할 수 있음).
데이터 지속성
클래스를 다시 로드하는 동안 객체 데이터를 보존하려면 직렬화와 같은 지속성 메커니즘을 고려하세요.
멋진 디버깅 요령
디버깅 시스템은 고급 기능을 제공합니다. 신뢰성이 떨어지고 수행하기가 더 어려운 경우가 많습니다. debug.
기존 클래스 로더에 클래스 추가
URLClassLoader를 사용하면 새 URL을 추가할 수 있지만 처음에 클래스 로드에 실패하면 해당 클래스 로더 내에서 로드되지 않습니다. 인스턴스입니다.
위 내용은 실행 중인 Java 애플리케이션에 JAR 파일을 다시 로드하거나 추가하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!