java 得到項目路徑

      一 相對路徑的獲得
   說明:相對路徑(即不寫明時候到底相對誰)均可通過以下方式獲得(不論是一般的java項目還是web項目)
  

       String relativelyPath=System.getProperty("user.dir");


   上述相對路徑中,java項目中的文件是相對於項目的根目錄
   web項目中的文件路徑視不同的web服務器不同而不同(tomcat是相對於 tomcat安裝目錄/bin)
  二 類加載目錄的獲得(即當運行時某一類時獲得其裝載目錄)
   1.1)通用的方法一(不論是一般的java項目還是web項目,先定位到能看到包路徑的第一級目錄)
  
   InputStream is=TestAction.class.getClassLoader().getResourceAsStream("test.txt");


   (test.txt文件的路徑爲 項目名/src/test.txt;類TestAction所在包的第一級目錄位於src目錄下)
  
   上式中將TestAction,test.txt替換成對應成相應的類名和文件名字即可
   1.2)通用方法二 (此方法和1.1中的方法類似,不同的是此方法必須以'/'開頭)
   InputStream is=Test1.class.getResourceAsStream("/test.txt");
   (test.txt文件的路徑爲 項目名/src/test.txt,類Test1所在包的第一級目錄位於src目錄下)
  
  三 web項目根目錄的獲得(發佈之後)
   1 從servlet出發
   可建立一個servlet在其的init方法中寫入如下語句

 

   ServletContext s1=this.getServletContext();
   String temp=s1.getRealPath("/"); (關鍵)


   結果形如:D:/工具/Tomcat-6.0/webapps/002_ext/ (002_ext爲項目名字)
   如果是調用了s1.getRealPath("")則輸出D:/工具/Tomcat-6.0/webapps/002_ext(少了一個"/")
   2 從httpServletRequest出發

 

   String cp11111=request.getSession().getServletContext().getRealPath("/");


   結果形如:D:/工具/Tomcat-6.0/webapps/002_ext/
  四 classpath的獲取(在Eclipse中爲獲得src或者classes目錄的路徑)
   方法一

 

       Thread.currentThread().getContextClassLoader().getResource("").getPath();

 

       eg:
   String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();
   System.out.println("t---"+t);
   輸出:t---/E:/order/002_ext/WebRoot/WEB-INF/classes/
  
   方法二

 

       JdomParse.class.getClassLoader().getResource("").getPath() (JdomParse爲src某一個包中的類,下同)


   eg:

       String p1=JdomParse.class.getClassLoader().getResource("").getPath();
   System.out.println("JdomParse.class.getClassLoader().getResource--"+p1);


   輸出: JdomParse.class.getClassLoader().getResource--/E:/order/002_ext/WebRoot/WEB-INF/classes/
  另外,如果想把文件放在某一包中,則可以 通過以下方式獲得到文件(先定位到該包的最後一級目錄)
   eg String p2=JdomParse.class.getResource("").getPath();
   System.out.println("JdomParse.class.getResource---"+p2);
   輸出: JdomParse.class.getResource---/E:/order/002_ext/WebRoot/WEB-INF/classes/jdom/ (JdomParse爲src目錄    下    jdom包中的類)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章