>Java >java지도 시간 >실행 중인 Java 애플리케이션에 JAR 파일을 다시 로드하거나 추가하려면 어떻게 해야 합니까?

실행 중인 Java 애플리케이션에 JAR 파일을 다시 로드하거나 추가하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-06 04:10:09934검색

How Can I Reload or Add JAR Files to a Running Java Application?

런타임에 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.