2011-11-18 63 views
7

Java程序可以訪問外部庫有哪些不同的方式。有設置一個類路徑,修改構建或構建路徑,但我已經看到了添加罐子的其他方式。在eclipse中設置classpath和java構建路徑有什麼區別?

爲什麼一些庫必須添加到類路徑中,而其他庫則不能。例如,我使用JSF,WTP工具和其他額外的庫,但是當我查看我的項目的構建路徑時,它們不在我的構建路徑中。

回答

6

Java構建路徑只是一個Eclipse的東西。這是Eclipse找到編譯和運行項目類所需的類的地方。這就是編譯和運行類路徑。

對於webapp,webapp在Java EE web容器內運行。 Web容器提供對標準Java EE類(javax.servlet等)的訪問。而且,WEB-INF/classes中的所有jar都會自動包含在Web應用程序的類路徑中。所以Eclipse不需要你在Java Build Path中指定它們。它們被自動包含在內。

+0

類路徑存儲在哪裏?它是操作系統中的環境變量還是JVM中設置的東西? – Randnum

+1

它使用-classpath或-cp選項傳遞給JVM。在Eclipse中打開Debug視圖,在Eclipse中運行程序,右鍵單擊Debug視圖中的... javaw.exe節點,然後單擊「Properties」,查看Eclipse用來啓動程序的命令。 –

13

當一個Java程序執行時,類路徑用於查找類。當Eclipse是編譯 Java程序時使用構建路徑。

+0

非常短而且甜美....我同意.......... – water

1

在開發時間。

構建路徑是您可以明確指向第三方軟件/罐子的路徑。

默認情況下,並非所有第三方軟件都添加到您的類路徑中,因此您可能必須將其明確添加到您的路徑中。

運行時。

另一方面,當您從命令行運行應用程序時,您應該使用-cp指定第三方jar來爲classpath添加前綴。

例如,在Web項目中,您可以在部署時將其添加到Web-inf庫中。

0

類路徑只是一個描述可用類型的類路徑條目數組(IClasspathEntry)。 classpath是一個環境變量,它告訴在哪裏尋找類文件,它通常設置爲一個目錄或一個JAR(Java歸檔)文件。

Java構建路徑反映在Java項目元素的結構中。您可以查詢項目的包裝碎片根(IPackageFragmentRoot)。構建路徑是用於構建Java項目的類路徑(IJavaProject)。

相關問題