成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳細(xì)介紹Java路徑的分類與使用注意事項

開發(fā) 后端
本文介紹的是java中路徑的分類和使用時的注意事項。希望對大家有幫助,一起來看。

Java路徑簡單的分可以分為兩種:相對路徑和相對路徑。 下面引見有關(guān)Java路徑分類的一些細(xì)節(jié), 以及運(yùn)用Java路徑時需求注意的問題。 

具體而言,Java路徑又分為四種:

一、URI方式的相對資源路徑如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/aaa. b URL是URI的特例。 URL的前綴/協(xié)議, 必須是Java看法的。 URL可以打開資源, 而URI則不行。 URL和URI對象可以相互轉(zhuǎn)換, 運(yùn)用各自的toURI(), toURL()辦法即可。 

二、本地系統(tǒng)的相對路徑 D:/java/eclipse32/workspace/jbpmtest3/bin/aaa. b Java. io包中的類, 需求運(yùn)用這種方式的參數(shù)。 但是, 它們一般也提供了URI類型的參數(shù), 而URI類型的參數(shù), 接受的是URI款式的String。 因而, 通過URI轉(zhuǎn)換, 還是可以把URI款式的相對路徑用在java. io包中的類中。 

三、相關(guān)于classpath的相對路徑如:相關(guān)于 file:/D:/java/eclipse32/workspace/jbpmtest3/bin/這個路徑的相對路徑。 其中, bin是本項目的classpath。 所有的Java源文件編譯后的. class文件復(fù)制到這個目錄中。 

四、相關(guān)于當(dāng)前用戶目錄的相對路徑就是相關(guān)于System. getProperty("user. dir")返回的路徑。 關(guān)于一般項目, 這是項目的根路徑。 關(guān)于JavaEE效勞器, 這能夠是效勞器的某個路徑。 這個并沒有統(tǒng)一的規(guī)范。 所以, 相對不要運(yùn)用“相關(guān)于當(dāng)前用戶目錄的相對路徑”。 

但是:默認(rèn)狀況下, java. io 包中的類總是根據(jù)當(dāng)前用戶目錄來分析相對路徑名。 

此目錄由系統(tǒng)屬性 user. dir 指定, 通常是 Java 虛擬機(jī)的調(diào)用目錄。 

這就是說, 在運(yùn)用java. io包中的類時, 最好不要運(yùn)用相對路徑。 否則, 雖然在J2SE應(yīng)用程序中能夠還算正常, 但是到了J2EE程序中, 一定會出問題。 而且這個路徑, 在不同的效勞器中都是不同的。 相對路徑最佳實(shí)際引薦運(yùn)用相關(guān)于當(dāng)前classpath的相對路徑因而, 我們在運(yùn)用相對路徑時, 該當(dāng)運(yùn)用相關(guān)于當(dāng)前classpath的相對路徑。 

ClassLoader類的getResource(String name), getResourceAsStream(String name)等辦法, 運(yùn)用相關(guān)于當(dāng)前項目的classpath的相對路徑來查找資源。 讀取屬性文件常用到的ResourceBundle類的getBundle(String path)也是如此。 通過查看ClassLoader類及其相關(guān)類的源代碼, 我發(fā)現(xiàn), 它實(shí)踐上還是運(yùn)用了URI方式的相對路徑。 通過失掉當(dāng)前classpath的URI方式的相對路徑, 構(gòu)建了相對路徑的URI方式的相對路徑。 (這個實(shí)踐上是猜想, 由于JDK外部調(diào)用了SUN的源代碼, 而這些代碼不屬于JDK, 不是開源的。 ) 相對路徑本質(zhì)上還是相對路徑因而, 歸根結(jié)底, Java本質(zhì)上只能運(yùn)用相對路徑來尋找資源。

所有的相對路徑尋找資源的辦法, 都不過是一些便利辦法。 不過是API在底層協(xié)助我們構(gòu)建了相對路徑, 從而找到資源的。 失掉classpath和當(dāng)前類的相對路徑的一些辦法 下面是一些失掉classpath和當(dāng)前類的相對路徑的一些辦法。

Java路徑:你能夠需求運(yùn)用其中的一些辦法來失掉你需求的資源的相對路徑。 

1, FileTest. class. getResource("") 失掉的是當(dāng)前類FileTest. class文件的URI目錄。 不包括本人。 如:

file:/D:/java/eclipse32/workspace/jbpmtest3/bin/com/test/

2, FileTest. class. getResource("/") 失掉的是當(dāng)前的classpath的相對URI路徑。 如:

file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

3, Thread. currentThread(). getContextClassLoader(). getResource("") 失掉的也是當(dāng)前ClassPath的相對URI路徑。 如:

file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

4, FileTest. class. getClassLoader(). getResource("") 失掉的也是當(dāng)前ClassPath的相對URI路徑。 如:

file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

5, ClassLoader. getSystemResource("") 失掉的也是當(dāng)前ClassPath的相對URI路徑。 如:

file:/D:/java/eclipse32/workspace/jbpmtest3/bin/ 我引薦運(yùn)用Thread. currentThread(). getContextClassLoader(). getResource("")來失掉當(dāng)前的classpath的相對路徑的URI表示法。 Web應(yīng)用程序中資源的尋址 上文中說過, 當(dāng)前用戶目錄, 即相關(guān)于System. getProperty("user. dir")返回的路徑。

關(guān)于JavaEE效勞器, 這能夠是效勞器的某個路徑, 這個并沒有統(tǒng)一的規(guī)范。 

而不是我們發(fā)布的Web應(yīng)用程序的根目錄。 

這樣, 在Web應(yīng)用程序中, 我們相對不能運(yùn)用相關(guān)于當(dāng)前用戶目錄的相對路徑。 

在Web應(yīng)用程序中, 我們一般通過ServletContext. getRealPath("/")辦法失掉Web應(yīng)用程序的根目錄的相對路徑。 這樣, 我們只需求提供相關(guān)于Web應(yīng)用程序根目錄的路徑, 就可以構(gòu)建出定位資源的相對路徑。 這是我們開發(fā)Web應(yīng)用程序時一般所采取的戰(zhàn)略。 

通用的相對路徑解決辦法 Java中各種相對路徑非常多, 不容易運(yùn)用, 非常容易出錯。 因而, 我編寫了一個便利辦法, 協(xié)助更容易的解決相對路徑問題。 

Web應(yīng)用程序中運(yùn)用JavaSE運(yùn)轉(zhuǎn)的資源尋址問題在JavaSE程序中, 我們一般運(yùn)用classpath來作為存放資源的目的地。 但是, 在Web應(yīng)用程序中, 我們一般運(yùn)用classpath外面的WEB-INF及其子目錄作為資源文件的存放地。

在Web應(yīng)用程序中, 我們一般通過ServletContext. getRealPath("/")辦法失掉Web應(yīng)用程序的根目錄的相對路徑。 這樣, 我們只需求提供相關(guān)于Web應(yīng)用程序根目錄的路徑, 就可以構(gòu)建出定位資源的相對路徑。

Web應(yīng)用程序, 可以作為Web應(yīng)用程序停止發(fā)布和運(yùn)轉(zhuǎn)。 

但是,我們也經(jīng)常會以JavaSE的方式來運(yùn)轉(zhuǎn)Web應(yīng)用程序的某個類的main辦法。

或者,運(yùn)用JUnit測試。 這都需求運(yùn)用JavaSE的方式來運(yùn)轉(zhuǎn)。

這樣,我們就無法運(yùn)用ServletContext. getRealPath("/")辦法失掉Web應(yīng)用程序的根目錄的相對路徑。

而JDK提供的ClassLoader類, 它的getResource(String name), getResourceAsStream(String name)等辦法, 運(yùn)用相關(guān)于當(dāng)前項目的classpath的相對路徑來查找資源。 讀取屬性文件常用到的ResourceBundle類的getBundle(String path)也是如此。 它們都只能運(yùn)用相對路徑來讀取classpath下的資源, 無法定位到classpath外面的資源。 Classpath外配置文件讀取問題如,我們運(yùn)用測試驅(qū)動開發(fā)的辦法, 開發(fā)Spring、Hibernate、iBatis等運(yùn)用配置文件的Web應(yīng)用程序, 就會遇到問題。

雖然Spring本人提供了FileSystem(也就是相關(guān)于user, dir目錄)來讀取Web配置文件的辦法, 但是終究不是很方便。 而且與Web程序中的代碼運(yùn)用方式不分歧。

至于Hibernate, iBatis就更麻煩了。只要把配置文件移到classpath下, 否則基本不能夠運(yùn)用測試驅(qū)動開發(fā)。

責(zé)任編輯:于鐵 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2009-08-27 10:40:56

Java路徑

2009-12-22 09:48:58

WCF枚舉類型

2013-09-25 10:15:51

閃存存儲優(yōu)勢注意事項

2011-03-22 08:56:30

2009-12-14 10:08:03

無線路由貓

2010-11-26 16:27:01

MySQL使用變量

2011-06-24 09:23:02

SEO

2011-08-01 12:53:25

iPhone 多線程 線程

2010-01-04 15:37:41

ADO連接

2010-05-11 11:03:41

Mysql索引

2011-05-26 11:22:04

SEO

2010-01-21 11:30:10

2012-03-12 16:46:22

NoSQL數(shù)據(jù)庫

2011-07-28 17:29:22

HBaseShell

2012-04-10 09:53:15

2012-06-13 02:02:43

ServletJavaJSP

2009-06-12 09:46:40

Java String

2009-11-25 17:51:27

2010-07-26 10:59:59

SQL Server游

2010-06-21 14:39:56

光纖測試
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 97精品国产97久久久久久免费 | 91一区 | 999久久久久久久 | 国产女人叫床高潮大片免费 | 久久久精品一区二区三区 | 日日日操| 午夜精品久久久久久久久久久久久 | 日韩和的一区二在线 | 免费一级黄色 | 99亚洲精品 | 中文一区| 天天爽夜夜爽精品视频婷婷 | 久久国产一区二区三区 | 国产免费国产 | 国产欧美精品 | 欧美11一13sex性hd | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 久久久久国 | 日韩精品一区二区三区在线观看 | 狠狠色综合久久婷婷 | 欧美国产日韩在线观看 | 99在线免费视频 | 在线观看av网站 | 日韩精品一区二区三区在线观看 | 欧美一卡二卡在线观看 | 国产一区二区日韩 | 欧美一级在线观看 | 日韩中文一区 | 国产精品91久久久久久 | 久久久99精品免费观看 | 999视频 | 国产一区二区毛片 | 91嫩草精品 | 日韩欧美国产精品综合嫩v 一区中文字幕 | 免费国产视频 | 亚洲入口| 一区二区三区精品视频 | av一级毛片| 一区二区三区在线播放 | 国产精品一区二区在线 | 香蕉婷婷 |