また、TomcatはJVMの起動時にシステムプロパティを設定するだけなので、クラスローダーの「ハウツー」に記載されているように、通常の/文書化された方法を使用します(「Tomcatはシステムプロパティ設定-Djava.endorsed.dirs = $を含めることにより、このメカニズムを利用します。コンテナを起動するコマンドラインのJAVA_ENDORSED_DIRS。")
したがって、プログラムでそれを行うのはそれほど簡単ではありません。JVMの開始後にシステムプロパティを設定しても効果はないと思います(これはテストしていません)。
ただし、それでも可能です。アプリケーション内から別のJVMを起動し、そこにシステムプロパティを設定するだけです。アプリケーションは、最初に、承認されたディレクトリが設定されているかどうかを確認する必要があります。設定されている場合は正常に実行され、そうでない場合は、Runtime.getRuntime().exec(cmdarray)
「自分自身を再起動する」ために使用します(もちろんシステムプロパティが正しく設定されています)。この「開始自体」を正しく行うのは少し複雑ですが、それは可能です。私が働いている会社(www.day.com)は、すべての製品にこれを使用しています。これを「クイックスタート」と呼びます。承認されたディレクトリを実際に設定することはないと思いますが-Xmx..
、現在の設定では不十分な場合は、最大メモリ()を設定します。