ホームページ > Java > &#&チュートリアル > 実行中のシステムで Java クラスと JAR ファイルを動的にロードおよび再ロードするにはどうすればよいですか?

実行中のシステムで Java クラスと JAR ファイルを動的にロードおよび再ロードするにはどうすればよいですか?

DDD
リリース: 2024-12-04 18:17:11
オリジナル
342 人が閲覧しました

How Can I Dynamically Load and Reload Java Classes and JAR Files in a Running System?

実行中の Java システムへの新しいコードのロード

クラスの再ロード

既存のクラスの再ロード既存のデータはシステムを不安定にする可能性があります。代わりに、次のアプローチの使用を検討してください。

  • 更新された JAR ファイルへのパスを使用して新しい URLClassLoader をインスタンス化します。
  • 新しいクラスを新しいクラス ローダーにロードし、それらを新しいクラス ローダーにキャストします。
  • ロードされたクラスのインスタンスを作成し、実行を実行します。

新しい JAR ファイルのロード

実行中の Java システムに新しい JAR ファイルをロードするには:

  1. 新しい JAR ファイルの URL を含む URLClassLoader。
  2. ClassLoader.newInstance メソッドを使用して、クラス ローダーの新しいインスタンスを作成します。
  3. Class.forName を使用して、新しいクラスを新しいクラス ローダーにロードします。
  4. ロードされたクラスをインスタンス化し、必要なアクションを実行します。

未使用クラスのガベージ コレクションローダー

使用されなくなったクラス ローダーは、メモリ リークがない限り、ガベージ コレクションされます。メモリ リークの一般的な原因には、ThreadLocal、JDBC ドライバ、および java.beans が含まれます。

オブジェクト データの保持

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

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

URLClassLoader.addURL を使用して既存のクラス ローダーに新しいクラスを追加することは可能ですが、このプロセス中にクラスのロードに失敗すると、そのクラスにロードできなくなることに注意してください。ローダー インスタンス。

以上が実行中のシステムで Java クラスと JAR ファイルを動的にロードおよび再ロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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