星期四, 11月 25, 2010

[Eclipse] Import & Export *.jar library

最近在新建的 eclipse專案匯入其他專案的jar檔時,常常會發生path錯誤無法編譯的問題。
找了一下其他人的解決方案,不過目前採用UserLibraries跟 Web-INF/lib裡面都有引入需要的jar,好像才不會有問題。

 以下是擷錄別人的匯入外部java component的流程:

1. 將所有的 *.jar 分類好,新增設定 User Libraries
→ Windows → Preference → Java → Build Path → User Libraries
※ 不要勾選 System library ( added to the boot class path )

2. 在 Project 的 Build Path 的 Libraries 引入 User Libraries
3. 進入 Order and Export 勾選引入的 User Libraries
→ Project → Build Path → Cinfigure Build Path → Libraries & Order and Export

4. 接著到 Java EE Module Dependencies 的 Web Libraries 勾選引入的 User Libraries
→ Java EE Module Dependencies → Web Libraries   目前專案沒用這個步驟

1. 設定 User Libraries 到 Build Path :

用於當 Java 在 Compile 時,可以正確「參考到」這些外部的 *.jar !

※ 有沒有勾選 System library ( added to the boot class path ) 對於用 RSA 開發的人是有些微影響的!

● 優點:
◎ 分類方便醒目
◎ 可多個專案共用,單純的 Java 程式適用

● 缺點:
◎ 需固定 *.jar 的位置
◎ 如果沒有勾選 Order and Export 在 Export Project 時不會一起匯出
◎ 版本控管不易

=================================================

2. 直接將所有的 *.jar 放到 Dymanic Web Project 底下的 WEB-INF / lib 資料夾中:

這是最快的方法,不管是直接 Compile 或是 Web Project 在 Runtime 時都可以正式引用!在 Export Project 的同時也會一同置入 *war 或是 *.ear 中!

● 優點:
◎ Export Project 時會將這些 *.jar 一起匯出
◎ 方便版本控管

● 缺點:
◎ 所有的 *.jar 都在同一個資料夾中,不易整理
◎ Export 出來的 Project 會隨著 *.jar 數量而變大

=================================================

3. 設定好 User Libraries 到 Build Path 並在 Java EE Module Dependencies 勾選匯入的 *.jar :

與第 1 點相同,不同的地方是啟動 Server 的同時會將這些 *.jar 置入 Project 的 WEB-INF / lib 裡, ClassPath 路徑也同時改變!

● 優點:
◎ 分類方便醒目
◎ 可多個專案共用

● 缺點:
◎ 一定要啟動 Server 才能正確執行

=================================================

4. 在 Java EE Module Dependencies 的 Web Libraries 加入其它 Project :

這是用在當我將一個 Project 依照某些規格拆開來開發時使用的方式!

假 設將一個 Project 拆成 A 與 B 兩個 Project ,在 B Project 中加入 A Project ,當我啟動 Server 時, A Project 會自動包成 A.jar 放到 B Project 的 WEB-INF / lib 裡面來執行。

一般的 ClassPath 為:~ / oo.jar ; xx.jar ; ...

如果 oo.jar 與 xx.jar 只是一般的 Class ,就很單純,只是引入且可以正確執行!

但 是如果 oo.jar 與 xx.jar 是 Web Project ,就表示在 oo.jar 與 xx.jar 裡面也有內部自己在用的其它 *.jar ,一樣有 Project 本身的 ClassPath ,開發的時候是分開的,啟動 Server 的 Runtime 時期便一起置入 WEB-INF / lib 並改變 ClassPath !

● 優點:
◎ 當 Project 很大時將 Project 依功能或屬性切開,方便控管
◎ 如果只是要修改其中一個小 *.jar 時,不需要將 Server 整個 Shutdown

● 缺點:
◎ 新手不易上手。(這是我想得到唯一的缺點 ...)

Reference:
利用eclipse將jar lib引入(import)和輸出
匯入外部 *.jar
Eclipse 中載入 User Library 或 Java Component 元件

沒有留言:

張貼留言

留個話吧:)

其他你感興趣的文章

Related Posts with Thumbnails