欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java Resource路徑整理總結(jié)

 更新時(shí)間:2017年03月16日 14:27:56   投稿:lqh  
這篇文章主要介紹了 Java Resource路徑整理總結(jié)的相關(guān)資料,需要的朋友可以參考下

  Java Resource路徑

首先一點(diǎn)很重要,Java中不存在標(biāo)準(zhǔn)的相對(duì)路徑,各種相對(duì)路徑取資源的方式都是基于某種規(guī)則轉(zhuǎn)化為絕對(duì)路勁

然后一點(diǎn)也很重要,絕對(duì)不要直接使用絕對(duì)路徑,否則死得很難看

基于以上兩點(diǎn),總結(jié)Resource路徑問題無非歸結(jié)為一點(diǎn):找基點(diǎn),也就是在某種環(huán)境下(web、j2ee或jar包等)通過合適的方式找到一個(gè)穩(wěn)定的基點(diǎn),然后通過這個(gè)基點(diǎn)找到你要的resource

Java中的基點(diǎn)有哪些呢?大致總結(jié)一下有以下幾種:

1)classpath

如果你要找的資源在classpath下,那么通過classpath這個(gè)基點(diǎn)是比較合適的,而取得這個(gè)基點(diǎn)方式主要是通過ClassLoader來,具體方法就是 ClassLoader.getResource(String name),而取得ClassLoader的方式很多,比如:

  1. Thread.currentThread().getContextClassLoader()
  2. clazz.getClassLoader()
  3. ClassLoader. getSystemClassLoader()

ClassLoader找resource的實(shí)現(xiàn)原理就是先遞歸在parent classLoader中從所在classpath里加載resource(最終如何加載JDK未開源),如果所有層級(jí)的classLoader都未找到,則調(diào)用findResource方法來找,而這個(gè)方法是暴露給自制classLoader來現(xiàn)實(shí)的,因此給了在classpath之外加載resource的機(jī)會(huì)。

2) 當(dāng)前用戶目錄

就是相對(duì)于System.getProperty("user.dir" )返回的路徑, 對(duì)于一般項(xiàng)目,這是項(xiàng)目的根路徑。對(duì)于JavaEE服務(wù)器,這可能是服務(wù)器的某個(gè)路徑。這個(gè)并沒有統(tǒng)一的規(guī)范! 然而, 默認(rèn)情況下,java.io 包中的類總是根據(jù)當(dāng)前用戶目錄來分析相對(duì)路徑名,如new File("xxx"),就是在 System.getProperty("user.dir" )路徑下找xxx文件。因此,通過這種方式來定位文件可能會(huì)出現(xiàn)移植問題。

3) Web應(yīng)用程序的根目錄

在Web應(yīng)用程序中,我們一般通過ServletContext.getRealPath("/" )方法得到Web應(yīng)用程序的根目錄的絕對(duì)路徑。

掌握了上面幾個(gè)基點(diǎn),就能很輕松得定位你要找的resource,只不過要清晰地認(rèn)識(shí)到不要只圖一時(shí)快活,而不管將來移植的死活,要確保能任何環(huán)境下(j2se or web,windows or Linux)不出問題。

 感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Java異常--常見方法--自定義異常--增強(qiáng)try(try-with-resources)詳解

    Java異常--常見方法--自定義異常--增強(qiáng)try(try-with-resources)詳解

    這篇文章主要介紹了Java異常--常見方法--自定義異常--增強(qiáng)try(try-with-resources)的相關(guān)知識(shí),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • 帶你了解10道java入門面試題

    帶你了解10道java入門面試題

    面試題相信大家都不陌生,想要一個(gè)好的工作面試題必不可少的,下面和小編一起來學(xué)習(xí)與了解Java當(dāng)中有有些什么面試題吧,希望能給你帶來幫助
    2021-08-08
  • Java連接 JDBC基礎(chǔ)知識(shí)(操作數(shù)據(jù)庫:增刪改查)

    Java連接 JDBC基礎(chǔ)知識(shí)(操作數(shù)據(jù)庫:增刪改查)

    這篇文章主要介紹了Java連接 JDBC基礎(chǔ)知識(shí),包括操作數(shù)據(jù)庫之增刪改查操作,需要的朋友可以參考下
    2021-04-04
  • Java中的javaBean、vo、entity、domain和pojo

    Java中的javaBean、vo、entity、domain和pojo

    這篇文章主要介紹了Java中的javaBean、vo、entity、domain和pojo用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Java cglib動(dòng)態(tài)代理原理分析

    Java cglib動(dòng)態(tài)代理原理分析

    這篇文章主要介紹了Java cglib動(dòng)態(tài)代理的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-05-05
  • 身份證號(hào)碼驗(yàn)證算法深入研究和Java實(shí)現(xiàn)

    身份證號(hào)碼驗(yàn)證算法深入研究和Java實(shí)現(xiàn)

    這篇文章主要介紹了身份證號(hào)碼驗(yàn)證算法深入研究和Java實(shí)現(xiàn),本文講解了18身份證號(hào)碼的結(jié)構(gòu)、根據(jù)17位數(shù)字本體碼獲取最后一位校驗(yàn)碼程序?qū)嵗葍?nèi)容,需要的朋友可以參考下
    2015-06-06
  • 構(gòu)建SpringBoot+MyBatis+Freemarker的項(xiàng)目詳解

    構(gòu)建SpringBoot+MyBatis+Freemarker的項(xiàng)目詳解

    在本篇內(nèi)容里小編給大家整理的是關(guān)于構(gòu)建SpringBoot+MyBatis+Freemarker的項(xiàng)目的具體步驟以及實(shí)例代碼,需要的朋友們參考下。
    2019-06-06
  • maven的pom.xml中repositories和distributionManagement使用

    maven的pom.xml中repositories和distributionManagement使用

    這篇文章主要介紹了maven的pom.xml中repositories和distributionManagement使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Java中對(duì)象數(shù)組的使用方法詳解

    Java中對(duì)象數(shù)組的使用方法詳解

    這篇文章主要介紹了Java中對(duì)象數(shù)組的使用方法,結(jié)合實(shí)例形式分析了java對(duì)象數(shù)組的功能、定義、初始化與相關(guān)使用技巧,需要的朋友可以參考下
    2019-08-08
  • 詳解Jvm中時(shí)區(qū)設(shè)置方式

    詳解Jvm中時(shí)區(qū)設(shè)置方式

    這篇文章主要介紹了詳解Jvm中時(shí)區(qū)設(shè)置方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09

最新評(píng)論