偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

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

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

二、本地系統(tǒng)的相對路徑 D:/java/eclipse32/workspace/jbpmtest3/bin/aaa. b Java. io包中的類, 需求運用這種方式的參數(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)于當前用戶目錄的相對路徑就是相關(guān)于System. getProperty("user. dir")返回的路徑。 關(guān)于一般項目, 這是項目的根路徑。 關(guān)于JavaEE效勞器, 這能夠是效勞器的某個路徑。 這個并沒有統(tǒng)一的規(guī)范。 所以, 相對不要運用“相關(guān)于當前用戶目錄的相對路徑”。 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Web應(yīng)用程序中運用JavaSE運轉(zhuǎn)的資源尋址問題在JavaSE程序中, 我們一般運用classpath來作為存放資源的目的地。 但是, 在Web應(yīng)用程序中, 我們一般運用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ā)布和運轉(zhuǎn)。 

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

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

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

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

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

至于Hibernate, iBatis就更麻煩了。只要把配置文件移到classpath下, 否則基本不能夠運用測試驅(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-08-01 12:53:25

iPhone 多線程 線程

2011-06-24 09:23:02

SEO

2010-01-04 15:37:41

ADO連接

2010-05-11 11:03:41

Mysql索引

2011-05-26 11:22:04

SEO

2012-03-12 16:46:22

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

2011-07-28 17:29:22

HBaseShell

2010-01-21 11:30:10

2012-04-10 09:53:15

2012-06-13 02:02:43

ServletJavaJSP

2009-06-12 09:46:40

Java String

2010-07-26 10:59:59

SQL Server游

2009-11-25 17:51:27

2010-06-21 14:39:56

光纖測試
點贊
收藏

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