2013-08-02 117 views
0

背景/例如(但問題是,可能比這個更廣泛的):Java庫搜索順序

我想寫訪問谷歌AppEngine上的服務器的Java應用程序。要設置這個項目,我也跟着在接受的答案在這裏列出的步驟:

Developing a Java Application that uses an AppEngine database

我現在運行到哪裏,我試圖執行Java客戶端的HttpURLConnection -request問題應用程序(即不在AppEngine服務器代碼中),但Google的AppEngine庫似乎已用它自己的urlFetch()實現取代了此連接的Java版本。這導致我得到以下錯誤:「未找到API包'urlfetch'或調用'Fetch()'」。

實際問題:

什麼決定了的Java看起來通過圖書館找到所需類的實現順序?有沒有辦法修改這個順序(特別是在Eclipse中),以便實際的JRE函數優先於還需要的第三方庫。或者在上面給出的示例中執行Url時可能會出現一些特殊情況,這些問題無法通過指定庫命令來解決?

更新:

原來我看到的沒有任何關係,在哪些類加載順序的問題。 AppEngine服務器代碼顯式調用setContentHandlerFactory(...)以在執行期間而不是在庫加載時註冊其自己的處理程序(see here for a fix to this specific issue)。所以,雖然我的「實際問題」可能仍然存在,但我實際上還沒有遇到過這種情況...

+0

可能的重複:http://stackoverflow.com/questions/5474765/order-of-loading-jar-files-from-lib-directory –

+0

@kocko由於客戶端代碼沒有運行在Tomcat中,所以這個問題是與你所鏈接的不同 –

回答

1

在Eclipse中,您可以調整類路徑順序。右鍵單擊您的項目,選擇「屬性」,「Java構建路徑」,然後單擊「訂單和導出」選項卡。但是,當然,這不會影響在Eclipse之外運行時的程序。