2012-02-28 7 views
2

システムjarの前にjarファイルをロードする方法はありますか?私は使用することが強制されているJavaシステム(1.5)よりも新しいクラスを持っていますが、javaロードは独自のものであるため(rt.jarから特定のものになるため)、ブレークします。システム/ rt.jarの前に自分のjarをロードするように強制することができる方法はありますか?システムジャーの前にjarをロード

+1

好奇心の邪魔をして、なぜこれをやろうとしていますか?あなたはシステムクラスの振る舞いをオーバーライドしようとしていますか?代わりにアップグレードすることは可能でしょうか?あなたがやろうとしていることに応じて、異なる順序で物事を読み込むカスタムクラスローダーで何かをすることができるかもしれません。 –

+0

会社では、強制的に1.5になっています。私たちは、1.6以上を必要とするjaxpを実行したいが、いくつかのクラスの異なるバージョンを含むjarファイルもあり、それを使用して動作させたい。 –

答えて

3

(JVM固有の)起動オプション-Xbootclasspath:/pが必要です。これにより、指定されたクラスが最初にロードされるように強制され、既存のブートクラスパスのの前にの前に追加されます。

java -Xbootclasspath/p:<pathtooverridejarhere> mypackage.MyClass 

注:それは神託TOSに反している

  • にJDKクラスの新しいバージョンは、まだ原因 依存関係の解決の問題のため、失敗する可能性がありロード修正JDKクラス
  • を配布します。
0

extまたはendorsedクラスパスを試してみることもできます。

+0

システムフォルダの前にextフォルダのクラスがロードされません。 – Perception

+0

だから、私は__might__を書いたのです。 –