System.getProperty("user.dir");
能夠得到當前用戶的工做目錄,即在哪一個地方啓動的java程序,返回就是當前目錄java
從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
經過線程獲取this
Thread.currentThread().getContextClassLoader().getResource("").getPath()
經過類加載器獲取spa
this.getClass().getClassLoader().getResource("").getPath(); //或者 ClassName.class.getClassLoader().getResource("").getPath();
這種方法均可以獲取到項目的classpath路徑,可是執行的類都必須是在src路徑下。由於設置Classpath的目的,是在於告訴Java執行環境,在哪些目錄下能夠找到您所要執行的Java程序所須要的類或者包。
classpath具體介紹.net