2015-08-17 47 views
1

假設您有一個簡單的Hello world java程序,它使用外部用戶定義的類。你什麼時候需要這個.jar? 在編譯期間或運行期間?Java中的外部jar依賴性,編譯時間與運行時間

在最近的一次採訪中,我問到了這個問題,我回答了兩個問題。

後來我認爲編譯我們只需要類定義(即方法名,變量名)等等。但是我們可以沒有.jar嗎?

回答

1

在編譯期間,您需要在構建路徑中使用類的源文件(並一起編譯所有內容)或者.class文件(編譯後的文件)。沒有.jar文件就可以實現,只要你的外部.class文件也沒有其他的依賴關係。
一個jar文件可以用於編譯時,運行時或兩者。這取決於你有什麼樣的依賴。例如,在編譯期間需要它,並且在運行時不需要它,因爲您在已具有jar(或其版本)的託管環境(如應用程序服務器)中運行應用程序。例如,如果您的代碼執行了一些動態類加載(例如,在加載SQL驅動程序類時加載了java.sql.DriverManager),則直接在運行時需要它。
當然,最常見的情況是,在編譯和運行時都需要。

1

在運行期間,您始終需要該jar。

在編譯時,在devolopping環境(例如eclipse)中,jar文件不是必需的。還有其他機制(Build Bath設置),可用於查找課程。 如果使用構建腳本(如ant)編譯項目,則需要外部jar。