2012-02-28 60 views
2

在系統jar之前有什麼方法加載jar文件嗎?我有一個比java系統(1.5)更新的類,我不得不使用它,但是因爲java首先加載它(自rt.jar,具體來說),它會中斷。有沒有辦法強制它加載我自己的jar BEFORE system/rt.jar?在系統jar之前加載一個jar

+1

出於好奇,你爲什麼要這麼做?你想重寫系統類的行爲嗎?是否有可能升級呢?根據你想要做的事情,你可能能夠用自定義類加載器來做一些事情,以不同的順序加載事物。 – 2012-02-28 21:09:59

+0

在該公司,我們被迫爲1.5。我們希望運行需要1.6或更高版本的jaxp,但是還附帶了一個包含某些類的不同版本的jar,並且希望使用這些工具。 – 2012-02-29 15:17:08

回答

3

你想要的是(特定於JVM的)啓動選項-Xbootclasspath:/p。這將預先提供所提供的路徑列表,並且在之前存檔現有的引導類路徑,強制找到的所有類首先被加載。

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

需要注意的是:

  • 這是對甲骨文TOS到分發修改JDK類
  • 加載JDK類的新版本可能仍然會失敗,因爲 依賴性解析問題。
0

你可以試試ext或認可的類路徑。

+0

ext文件夾中的類不會在系統jar之前加載。 – Perception 2012-02-28 21:02:18

+0

這就是爲什麼我寫__might__。 – 2012-02-28 21:06:35