2016-11-28 205 views
0

我對Eclipse Run/Debug配置類路徑和構建java項目路徑感到困惑。我對他們的不同點有一些想法,但不完全確定我是正確的。請糾正我,如果我錯了或丟失任何東西....Eclipse類路徑vs構建路徑

  1. 當你右鍵點擊一個Java項目,並點擊配置構建路徑。它實際上是修改的.classpath文件該項目的....對我的理解,jar文件在這個文件中,列出...是需要編譯項目庫。
  2. 在Eclipse的Run/Debug Configurations窗口下,有一個Classpath選項卡。這個標籤下的Jar文件需要執行這個項目。

Q1。我對麼?任何額外的信息可以添加? Q2302。有一次,我編譯了項目,並開始了......它運行良好,直到我使用了其中的一個函數,系統拋出了classNotFound異常..在我添加了一個缺少的jar到構建路徑並且該函數起作用再次。所以,我很困惑。如果構建路徑用於編譯項目....這意味着我不應該能夠編譯並在第一個地方開始項目。但事實並非如此。我在這裏錯過了什麼嗎?爲什麼不應該將缺少的jar添加到類路徑而不是構建路徑?

+0

[Class Path和Build Path之間有什麼區別]可能的重複(http://stackoverflow.com/questions/3529459/what-is-the-difference-between-class-path-and-build-path ) –

回答

0

是的,「.classpath」文件中指定的類和jar在編譯項目的源代碼時使用,但在項目的類的運行配置中默認使用那些相同的類和jar。

有時候,有些類在運行項目時是必需的,但在編譯項目時實際上並不需要。這有不同的原因,但通常意味着被引用的類不是直接在源代碼中引用的,而是通過某種基於反射的過程的間接引用。

+0

謝謝你回答我的問題,卡爾先生。如果我添加一個jar:ABC到項目構建路徑.....這是否意味着它將在我運行/調試項目時自動包含?或者我需要手動執行(在eclipse env下)。你也可以給我一個例子,當lib只會用於運行/調試配置,而不是構建路徑。 – MIT

+0

同樣,構建路徑中的資源將自動用於項目中類的運行配置。關於間接引用,這是通過Reflection完成的。查找「java反射」。 –