1. 程式人生 > >Oracle呼叫Java方法(下)複雜Jar包封裝成Oracle方法以及ORA-29521錯誤

Oracle呼叫Java方法(下)複雜Jar包封裝成Oracle方法以及ORA-29521錯誤

上一篇隨筆中已經說了簡單的Jar是如何封裝的,但是我的需求是根據TIPTOP的查詢條件產生XML檔案並上傳到FTP主機中,那麼就要涉及到XML生成的方法和FTP上傳的方法 所以在Eclipse寫的時候引用了第三方的價包:jdbc, org.dom4j , org.apache.commons ![](https://images.cnblogs.com/cnblogs_com/59nice/1791574/o_200622020117%E4%B8%A4%E4%B8%AA%E6%9E%B6%E5%8C%85.png) 把這幾個jar包和自己的程式碼封裝成一個jar包 , 結果在執行loadjava命令的時候總是會報幾個ORA-29521: referenced name java/xxx/xxx/xxx could not be found 報的錯是dom4j和commons找不到類。 ![](https://images.cnblogs.com/cnblogs_com/59nice/1791574/o_200622020105%E6%8A%A5%E9%94%99.png) 從網上找到的解決方法也是眾說紛紜,有的說這個是因為OJVM的問題,有的說是因為Jar包的問題。有的說是因為Jar包的相關依賴包缺少導致的,但是自己試了一下都沒有解決這個問題, ![](https://images.cnblogs.com/cnblogs_com/59nice/1791574/o_200622020113%E5%9B%BD%E5%A4%96%E7%AD%94%E6%A1%882.png) **最後用了一個“土方法”解決了這個問題 :因為我用的這個價包都是開源的,可以從官網上下載的到原始碼所以先從官網上下載原始碼 匯入到Eclipse看一下發現確實這些Jar包都依賴了另外的依賴Jar包但是這些方法我都用不上所以索性直接Copy需要用的原始碼到專案中把自己專案中已經引用的包名都拷貝進來,然後修修改改,再把引用的Jar刪掉。不過jdbc的包卻沒有報這個錯誤,個人猜測可能是某些Jar包的Maven檔案導致的,如果有朋友知道為什麼的話可以說下。** ![](https://images.cnblogs.com/cnblogs_com/59nice/1791574/o_200622020100Java%E4%BB%A3%E7%A0%81.png) 最後執行匯出(Export..->Runnable JAR file->Package required libraires into generated JAR 一路NEXT) 匯出後的Jar包 執行LoadJava命令的時候就不會報這個錯了。 ![](https://images.cnblogs.com/cnblogs_com/59nice/1791574/o_200622020121%E8%BF%90%E8%A1%8C%E6%88%90%E5%8A