ホームページ > Java > &#&チュートリアル > 実行中の Java アプリケーションに JAR ファイルをリロードまたは追加するにはどうすればよいですか?

実行中の Java アプリケーションに JAR ファイルをリロードまたは追加するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-06 04:10:09
オリジナル
933 人が閲覧しました

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 ドライバーなどで発生する可能性があります)。

Data永続性

クラスのリロード後もオブジェクト データを保持するには、シリアル化などの永続化メカニズムを検討してください。

高度なデバッグ トリック

デバッグ システムは高度な機能を提供します。多くの場合、信頼性が低く、実行が困難です。 debug.

既存のクラス ローダーへのクラスの追加

URLClassLoader では新しい URL を追加できますが、クラスが最初にロードに失敗した場合、そのクラス ローダー内でロードされることはありません。インスタンス。

以上が実行中の Java アプリケーションに JAR ファイルをリロードまたは追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート