《Java項目中classpath路徑詳解》

來源:互聯網
上載者:User

標籤:entry   擷取   位置   blog   art   log   xml檔案   源檔案   text   

項目裡用到了classpath路徑來引用檔案,那麼classpath指的是哪裡呢

我首先把上面的applicationContext.xml檔案放在了src目錄下發現可以。

那麼classpath到底是哪裡呢,在網上看了幾篇部落格

畫黃線部分解釋了我放在src目錄下能用classpath:訪問的問題。

但是紅線部分,他說這句話對,我感覺有問題。

然後我就試了一下

發現無論是放在WEB-INF目錄下,還是WEB-INF/lib下都不行。WEB-INF/classes檔案還沒有。。。。。

 

 

然後去項目WorkeSpaces 下看 bulib/ classes (這裡是classpath路徑 )裡 發現applicationContext.xml並不在裡

點開編譯後的項目下的.classpath檔案發現,有四種類型的kind

.classpath內容解釋

.classpath是描述了工程的依賴檔案:

  1. 源檔案的具體位置(kind="src")
  2. 啟動並執行系統內容(kind="con")
  3. 工程的library的具體位置資訊(kind="lib")
  4. 在每個lib的xml子節點中,有關於它的其它配置資訊(例如我配置的那個"javadoc_location")
  5. 項目的輸出目錄(kind="output")

總體上說這個檔案就是配置整個工程的運行環境。

我們可以看到kind為src的只有"src"並麼有包含web-inf 檔案夾

然後我看到一篇部落格解決classpath路徑的問題http://blog.sina.com.cn/s/blog_792701cd0101hpbr.html 

然後我照著在.classpath添加了一行

運行成功!

去workespaces /項目名/build/classes/ 下發現

哎!applicationContext.xml進來了

 

由此可以總結:

1、在編譯產生的檔案.classpath 中kind="src" 的類型為classpath 路徑,在項目裡可以用classpath:xxx方式引用。也可以手動過來自己添加、擴大classpath的範圍,  <classpathentry kind="src" path="XXX"/>.

也就是說你想知道classpath指的是哪裡點開.classpath 看看kind="src" 的就知道了

2、在編譯產生的項目下的bulid/classes/ 下具有的檔案都是classpath 路徑下的檔案,都可以通過classpath:方法擷取。

3、”src不是classpath, WEB-INF/classes,lib才是classpath”這句話不對,這是編寫項目時看到的,真正的classpath是在編譯後的bulid/classes/ (如2的解釋)

《Java項目中classpath路徑詳解》

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.