システムjarの前にjarファイルをロードする方法はありますか?私は使用することが強制されているJavaシステム(1.5)よりも新しいクラスを持っていますが、javaロードは独自のものであるため(rt.jarから特定のものになるため)、ブレークします。システム/ rt.jarの前に自分のjarをロードするように強制することができる方法はありますか?システムジャーの前にjarをロード
2
A
答えて
3
(JVM固有の)起動オプション-Xbootclasspath:/p
が必要です。これにより、指定されたクラスが最初にロードされるように強制され、既存のブートクラスパスのの前にの前に追加されます。
java -Xbootclasspath/p:<pathtooverridejarhere> mypackage.MyClass
注:それは神託TOSに反している
- にJDKクラスの新しいバージョンは、まだ原因 依存関係の解決の問題のため、失敗する可能性がありロード修正JDKクラス
- を配布します。
0
extまたはendorsedクラスパスを試してみることもできます。
+0
システムフォルダの前にextフォルダのクラスがロードされません。 – Perception
+0
だから、私は__might__を書いたのです。 –
好奇心の邪魔をして、なぜこれをやろうとしていますか?あなたはシステムクラスの振る舞いをオーバーライドしようとしていますか?代わりにアップグレードすることは可能でしょうか?あなたがやろうとしていることに応じて、異なる順序で物事を読み込むカスタムクラスローダーで何かをすることができるかもしれません。 –
会社では、強制的に1.5になっています。私たちは、1.6以上を必要とするjaxpを実行したいが、いくつかのクラスの異なるバージョンを含むjarファイルもあり、それを使用して動作させたい。 –