JAR ファイルは、他の共有オブジェクト ライブラリとは異なり、大量にメモリにロードされません。それらのクラスは必要に応じてメモリにロードされるため、JAR ファイルを削除してクラス ルックアップを実行する必要がある場合、クラス ローダーのファイル ハンドルは無効になり (参照していた開いているファイルがなくなったため)、次のようになります。エラー。
オペレーティング システムがファイル ハンドルを管理するため、開いているファイルを新しいコピーに置き換えても、だまされることはありません。最初にファイルを閉じる必要がありますが、これは多くの場合、クラス ローダーのガベージ コレクションによってのみ実行できます。システム クラス ローダーを使用している場合、それは JVM をシャットダウンすることを意味します。
システム クラス ローダーとは別に破棄できるカスタム クラス ローダーを作成するためのフレームワークが作成されています。ただし、これはクラスのロードを複雑にします。あなたが求めていることを達成することはできますが、既存のプログラムを再構築して、フレームワークのクラスローダーでのクラスのルックアップに対応する (そして、時間の経過に伴うクラスローダーの損失と利益に対応する) ことなしには実現できません。
このようなフレームワークを試してみたい場合は、Christian の投稿を参照してください。あるプロジェクトがどのようにクラス ローダーを使用してそのニーズを容易にするかについてもう少し知りたい場合は、Web アプリケーションを独自のクラス ローダー内に制限する Apache の Tomcat の内部をのぞいてみてください。
多くの場合、展開前にサービスを停止し、展開後にサービスを開始することが正しい答えであることがわかります。