maven中classpath路徑(轉)


前幾天看見一個大神總結classpath文章,覺得特別有用。所以,特此轉載(http://my.oschina.net/GivingOnenessDestiny/blog/603505)

各種path獲取到的路徑的區別

Main.class.getResource(""); 得到的是當前class所在的路徑

Main.class.getResourceAsStream(""); 是從當前路徑查找資源資源

Main.class.getClassLoader.getResource("");得到的是當前類classloader加載類的起始位置

Main.class.getClassLoader.getResourceAsStream("");從classpath的起始位置查找資源

但是

Main.class.getResource("/"); 表示從classpath目錄下找

也就是說 Main.class.getResource("/"); 等價於 Main.class.getClassLoader.getResource("");

但是 Main.class.getClassLoader.getResourceAsStream("/"); 返回的是null

關於Servlet 資源路徑

ServletContext.getRealPath("/") 返回的是 war 包展開后的從系統根目錄到war展開地址的根路徑,比如windows 就是 file:///d/path/to/war/

也就是上面做了兩個動作, 先從 war 根目錄找到資源, 然后返回資源完整路徑

同樣的 ServletContext.getResource("/") 返回的的是從war 根目錄查找到的資源,只不過返回的是 URL ServletContext.getResourceAsStream("/") 返回的是和上面一樣的 InputStream

但是 ServletContext.getResource("") 返回的是相對於URL的路徑,相當於從當前URL根路徑查找資源 ServletContext.getResourceAsStream("") 和上面一樣,只不過返回InputStream

關於maven工程下springmvc資源路徑配置

Java 源代碼文件資源在Maven工程中的默認路徑是: src/main/java,這個路徑就是放置你的Java源代碼文件。默認的路徑是無需在Maven的pom.xml配置文件中指定的
資源文件的缺省路徑為src/main/resources,這樣Maven在打包成war文件的時候,會將src/main/resources的資源文件復制到class目錄。
因此對於Spring mvc項目,servlet的配置文件springmvc-context.xml缺省會放置在 src/main/resources/springmvc-context.xml。
對應的的web.xml指定的<param-value>classpath:springmvc-context.xml</param-value> 中,servlet的配置文件springmvc-context.xml 需要從 class目錄下查找。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM