Java web如何定位工程路徑

一 項目路徑的得到

System.getProperty("user.dir");

能夠得到當前用戶的工做目錄,即在哪一個地方啓動的java程序,返回就是當前目錄java

二 web項目根目錄的得到(項目發佈路徑)

從servlet出發 可創建一個servlet在其的init方法中寫入以下語句web

ServletContext s1=this.getServletContext(); 
String path=s1.getRealPath("/");

path結果爲:D:/workspace/Tomcat-8.0/webapps/test/ (test爲項目名字) 若是是調用了s1.getRealPath("")則輸出D:/workspace/Tomcat-8.0/webapps/test/(少了一個"/")spring


從httpServletRequest出發,通常spring的Controler接口能夠採起改方法tomcat

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

path結果爲:D:/workspace/Tomcat-8.0/webapps/test/app

在有的mac系統中獲取的地址都會帶有file,如==file:/private/var/folders/rc/fprxcv590blgzgvnxksmq3bh0000gn/T/tomcat-docbase.5005559936542573545.8080/==
若是用這個路勁去建立新的文件,則文件的路徑可能會跟你想象的不同,而是在當前路徑下建立了一個形如/file/private/var/folders/rc/fprxcv590blgzgvnxksmq3bh0000gn/T/tomcat-docbase.5005559936542573545.8080/...的文件夾webapp

三 classpath的獲取

經過線程獲取this

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

經過類加載器獲取spa

this.getClass().getClassLoader().getResource("").getPath();
//或者
ClassName.class.getClassLoader().getResource("").getPath();

這種方法均可以獲取到項目的classpath路徑,可是執行的類都必須是在src路徑下。由於設置Classpath的目的,是在於告訴Java執行環境,在哪些目錄下能夠找到您所要執行的Java程序所須要的類或者包。
classpath具體介紹.net

相關文章
相關標籤/搜索