1

私の質問は実際には非常に単純ですが、答えは複雑かもしれません。実行時に jar を動的にロードすることは可能ですか? または、webcontainer コンテキストで既にロードされているものを置き換えることさえできますか? この特定のケースでは、Tomcat と Spring MVC の組み合わせに興味がありますが、この手法は他のテクノロジ スタックに適応できると思います。

質問に対する答えが「はい」の場合、すぐに続く質問は次のとおりです。それを行う最も簡単な方法はどれですか? 私は OSGi を認識しており、Web コンテナーに動的に jar をロードすることが可能であると確信していますが、これは重量級のソリューションだと考えています。

4

1 に答える 1

1

JAR がどのようにロードされるのか正確にはわかりませんが、実行時に任意のクラスを動的にロードできます。JAR 内に含まれるクラスに関心がある場合は、クラス ローダーを使用してそれらをロードできます。またはより具体的には、JAR クラスローダーJarClassLoader クラス

JAR を置き換えようとしている場合、そのアプローチはおそらくその JAR からロードされたクラスを置き換えることであり、それを行う唯一の方法は、それらの各クラスへの参照が「ガベージ コレクション」である場合です。その時点で、同じクラスを新しい場所からロードできます。クラスのアンロード

あなたに似た質問実行時にJarを動的にロードするにはどうすればよいですか?

于 2013-08-05T18:30:28.820 に答える