java項目路徑
㈠ java怎樣獲取當前目錄路徑
很多朋友都想知道java如何獲取當前目錄路徑?下面就一起來了解一下吧~
1、利用System.getProperty()函數獲取當前路徑:
System.out.println(System.getProperty("user.dir"));//user.dir指定了當前的路徑
2、使用File提供的函數獲取當前路徑:
File directory = new File("");//設定為當前文件夾 try{ System.out.println(directory.getCanonicalPath());//獲取標準的路徑 System.out.println(directory.getAbsolutePath());//獲取絕對路徑 }catch(Exceptin e){} File.getCanonicalPath()和File.getAbsolutePath()大約只是對於new File(".")和new File("..")兩種路徑有所區別。 # 對於getCanonicalPath()函數,「."就表示當前的戚物尺文件夾,而」..「則表示當前文件夾的上一級文件夾 # 對於getAbsolutePath()函數,則不管」.」、「..」,返回當前的路徑加上你在new File()時設定的路徑 # 至於getPath()函數,得到的只是你在new File()時設定的路徑高高 比如當前的路徑為 C:/test : File directory = new File("abc"); directory.getCanonicalPath(); //得螞友到的是C:/test/abc directory.getAbsolutePath(); //得到的是C:/test/abc direcotry.getPath(); //得到的是abc File directory = new File("."); directory.getCanonicalPath(); //得到的是C:/test directory.getAbsolutePath(); //得到的是C:/test/. direcotry.getPath(); //得到的是. File directory = new File(".."); directory.getCanonicalPath(); //得到的是C:/ directory.getAbsolutePath(); //得到的是C:/test/.. direcotry.getPath(); //得到的是.. 另外:System.getProperty()中的字元串參數如下: System.getProperty()參數大全 # java.version Java Runtime Environment version # java.vendor Java Runtime Environment vendor # java.vendor.url Java vendor URL # java.home Java installation directory # java.vm.specification.version Java Virtual Machine specification version # java.vm.specification.vendor Java Virtual Machine specification vendor # java.vm.specification.name Java Virtual Machine specification name # java.vm.version Java Virtual Machine implementation version # java.vm.vendor Java Virtual Machine implementation vendor # java.vm.name Java Virtual Machine implementation name # java.specification.version Java Runtime Environment specification version # java.specification.vendor Java Runtime Environment specification vendor # java.specification.name Java Runtime Environment specification name # java.class.version Java class format version number # java.class.path Java class path # java.library.path List of paths to search when loading libraries # java.io.tmpdir Default temp file path # java.compiler Name of JIT compiler to use # java.ext.dirs Path of extension directory or directories # os.name Operating system name # os.arch Operating system architecture # os.version Operating system version # file.separator File separator ("/" on UNIX) # path.separator Path separator (":" on UNIX) # line.separator Line separator ("/n" on UNIX) # user.name User』s account name # user.home User』s home directory # user.dir User』s current working directory
JAVA中獲取路徑 關鍵字: java中獲取路徑
1、jsp中取得路徑:
以工程名為TEST為例:
(1)得到包含工程名的當前頁面全路徑:request.getRequestURI() 結果:/TEST/test.jsp (2)得到工程名:request.getContextPath() 結果:/TEST (3)得到當前頁面所在目錄下全名稱:request.getServletPath() 結果:如果頁面在jsp目錄下 /TEST/jsp/test.jsp (4)得到頁面所在伺服器的全路徑:application.getRealPath("頁面.jsp") 結果:D:/resin/webapps/TEST/test.jsp (5)得到頁面所在伺服器的絕對路徑:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent(); 結果:D:/resin/webapps/TEST
2、在類中取得路徑: (1)類的絕對路徑:Class.class.getClass().getResource("/").getPath() 結果:/D:/TEST/WebRoot/WEB-INF/classes/pack/ (2)得到工程的路徑:System.getProperty("user.dir") 結果:D:/TEST
㈡ java項目中文件的路徑
java項目中文件的路徑-方法大全
一、 相對路徑的獲得
說明:相對路徑(即不寫明時候到底相對誰)均可通過以下方式獲得(不論是一般的java項目還是web項目)
System.getProperty("user.dir");
上述相對路徑中,java項目中的文件是相對於項目的根目錄web項目中的文件路徑視不同的web伺服器不同而不同(tomcat是相對於tomcat安裝目錄in)
二 類載入目錄的獲得(即當運行時某一類時獲得其裝載目錄)
1.1)通用的方法一(不論是一般的java項目還是web項目,先定位到能看到包路徑的第一級目錄)
InputStreamis=TestAction.class.getClassLoader().getResourceAsStream("test.txt");(test.txt文件的路徑為 項目名src est.txt;類TestPath所在包的第一級目錄位於src目錄下)
三 web項目根目錄的獲得(發布之後)
1 從servlet出發
可建立一個servlet在其的init方法中寫入如下語句(沒有請求的話會拋空指針導常)
ServletContext s1=this.getServletContext();
String temp=s1.getRealPath("/"); (關鍵)
結果形如:F: omcat-6.0.36webapps est(test為項目名字)
如果是調用了s1.getRealPath("")則輸出F: omcat-6.0.36webapps est(少了一個"")
2 從httpServletRequest出發(沒有請求的話會拋空指針導常)
String path=request.getSession().getServletContext().getRealPath("/");
結果形如:F: omcat-6.0.36webapps est
四 classpath的獲取(在Eclipse中為獲得src或者classes目錄的路徑),放在監聽器,可以窗口啟動獲取路徑
方法一Thread.currentThread().getContextClassLoader().getResource("").getPath()
String path = Thread.currentThread().getContextClassLoader()
.getResource("").getPath();
System.out.println("path========"+ path);輸出:path========/F:/tomcat-6.0.36/webapps/test/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-/F:/tomcat-6.0.36/webapps/test/WEB-INF/classes/
另外,如果想把文件放在某一包中,則可以 通過以下方式獲得到文件(先定位到該包的最後一級目錄)
eg String p2=JdomParse.class.getResource("").getPath();
System.out.println("JdomParse.class.getResource---"+p2);
輸出:JdomParse.class.getResource--/F:/tomcat-6.0.36/webapps/test/WEB-INF/classes/
(JdomParse為src目錄下jdom包中的類)
四 屬性文件的讀取:
方法 一
InputStream in = lnewBufferedInputStream(newFileInputStream(name));
Properties p =newProperties();p.load(in);
注意路徑的問題,做執行之後就可以調用p.getProperty("name")得到對應屬性的值
方法二
Locale locale =Locale.getDefault();
ResourceBundle localResource = ResourceBundle.getBundle("test/propertiesTest",locale);
String value = localResource.getString("test");
System.out.println("ResourceBundle: " + value);
工程src目錄下propertiesTest.properties(名字後綴必須為properties)文件內容如下:
test=hello word
不通過Servlet獲取路徑
第一種實現
Java代碼
URL url = ClassLoader.getSystemClassLoader().getResource("./");
File file =newFile(url.getPath());
File parentFile =newFile(file.getParent());
System.out.println("webRoot:"+parentFile.getParent());
第二種實現
首先寫一個接聽類 (推薦使用,容器啟動時就執行,不會拋空指針異常,適合做定時器任務來刪除伺服器文件的路徑)
Java代碼:
package com.chinacreator.report.listener;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
/**
* @authorxiaoqun.yi
*/
public class PathListener {
private staticServletContext servletContext;
public voidcontextDestroyed(ServletContextEvent sce) {
this.servletContext= sce.getServletContext();
System.out.println("path=======:"+servletContext.getRealPath("/"));
}
public voidcontextInitialized(ServletContextEvent arg0) {
}
}
在web.xml中加入如下配置
Java代碼 :
<listener>
<listener-class>com.chinacreator.report.listener.PathListener</listener-class>
</listener>
五、Java中的getResourceAsStream有以下幾種:
1. Class.getResourceAsStream(String path) : path 不以』/'開頭時默認是從此類所在的包下取資源,以』/'開頭則是從ClassPath根下獲取。其只是通過path構造一個絕對路徑,最終還是由 ClassLoader(類載入器)(獲取資源)
2. Class.getClassLoader.getResourceAsStream(String path) :默認則是從ClassPath根下獲取,path不能以』/'開頭,最終是由ClassLoader獲取資源。
3. ServletContext. getResourceAsStream(String path):默認從WebAPP根目錄下取資源,Tomcat下path是否以』/'開頭無所謂,當然這和具體的容器實現有關。
4. Jsp下的application內置對象就是上面的ServletContext的一種實現。
其次,getResourceAsStream 用法大致有以下幾種:
第一: 要載入的文件和.class文件在同一目錄下,例如:com.x.y 下有類me.class ,同時有資源文件myfile.xml
那麼,應該有如下代碼:
me.class.getResourceAsStream("myfile.xml");
第二:在me.class目錄的子目錄下,例如:com.x.y 下有類me.class ,同時在 com.x.y.file 目錄下有資源文件myfile.xml
那麼,應該有如下代碼:
me.class.getResourceAsStream("file/myfile.xml");
第三:不在me.class目錄下,也不在子目錄下,例如:com.x.y 下有類me.class ,同時在 com.x.file 目錄下有資源文件myfile.xml
那麼,應該有如下代碼:
me.class.getResourceAsStream("/com/x/file/myfile.xml");
總結一下,可能只是兩種寫法
第一:前面有 「 / 」
「 / 」代表了工程的根目錄,例如工程名叫做myproject,「 / 」代表了myproject
me.class.getResourceAsStream("/com/x/file/myfile.xml");
第二:前面沒有 「 / 」
代表當前類的目錄
me.class.getResourceAsStream("myfile.xml");
me.class.getResourceAsStream("file/myfile.xml");
㈢ 如何查找java路徑
1、要解決問題之前,我們需要下載java這個軟體,在瀏覽器上搜索,記住下載的具體位置,方便下一步的操作。
㈣ 濡備綍瑙e喅java紼嬪簭涓璧勬簮璺寰勯敊璇
鍦↗ava紼嬪簭涓瑙e喅璧勬簮璺寰勯敊璇鐨勯棶棰橈紝閫氬父娑夊強浠ヤ笅鍑犱釜姝ラわ細
### 1. 紜瀹氳祫婧愮殑姝g『璺寰
棣栧厛錛屾偍闇瑕佺煡閬撴偍鐨勮祫婧愭枃浠舵斁鍦ㄩ」鐩鐨勫摢涓鍦版柟銆傚湪Java涓鏈変袱縐嶅父瑙佺殑鏂瑰紡鏉ュ紩鐢ㄨ祫婧愶細
- **鐩稿逛簬綾昏礬寰勭殑璧勬簮**錛氳繖浜涜祫婧愰氬父鏀懼湪欏圭洰鐨刞resources`鐩褰曚笅錛岃繖涓鐩褰曡鏍囪頒負綾昏礬寰勭殑涓閮ㄥ垎錛堝湪IDE涓閰嶇疆錛夈備嬌鐢ㄨ繖縐嶆柟寮忥紝鎮ㄥ彲浠ヤ嬌鐢╜Class.getResource()`鎴朻ClassLoader.getResourceAsStream()`鏂規硶鏉ュ姞杞借祫婧愩
- **鏂囦歡緋葷粺璺寰**錛氬傛灉璧勬簮浣嶄簬鏂囦歡緋葷粺鐨勬煇涓浣嶇疆錛岄偅涔堟偍灝嗛渶瑕佹彁渚涗竴涓緇濆硅礬寰勬垨鐩稿逛簬欏圭洰鏍圭洰褰曠殑鐩稿硅礬寰勩
### 2. 紜瀹氳祫婧愮殑鍔犺澆鏂瑰紡
鎮ㄩ渶瑕佸喅瀹氭槸浣跨敤綾誨姞杞藉櫒錛堟帹鑽愮敤浜庡唴閮ㄨ祫婧愶級榪樻槸鏂囦歡璺寰勶紙閫氬父鐢ㄤ簬澶栭儴璧勬簮錛夈
- **浣跨敤綾誨姞杞藉櫒**錛氬綋璧勬簮涓庢偍鐨勪唬鐮佹墦鍖呭湪涓璧鳳紙渚嬪傦紝鍦↗AR鏂囦歡涓錛夋椂錛屾偍搴旇ヤ嬌鐢ㄧ被鍔犺澆鍣ㄦ潵鑾峰彇榪欎簺璧勬簮銆
```java
// 浣跨敤褰撳墠綾葷殑綾誨姞杞藉櫒鑾峰彇杈撳叆嫻
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("path/to/your/resource.ext");
// 鎴栬咃紝濡傛灉鎮ㄩ渶瑕佽幏鍙栬祫婧愮殑URL
URL resourceURL = this.getClass().getClassLoader().getResource("path/to/your/resource.ext");
```
- **浣跨敤鏂囦歡璺寰**錛氬傛灉璧勬簮鍦ㄦ枃浠剁郴緇熶腑錛屽苟涓旀偍鐭ラ亾瀹冪殑璺寰勶紝鎮ㄥ彲浠ュ儚榪欐牱鐩存帴寮曠敤瀹冿細
```java
File file = new File("/absolute/path/to/your/resource.ext");
// 鎴
File file = new File("relative/path/to/your/project/root/resource.ext");
```
### 3. 媯鏌IDE鎴栨瀯寤哄伐鍏風殑閰嶇疆
濡傛灉鎮ㄥ湪IDE錛堝侷ntelliJ IDEA鎴朎clipse錛変腑宸ヤ綔錛岀『淇漙resources`鏂囦歡澶硅姝g『閰嶇疆涓鴻祫婧愮洰褰曘
### 4. 媯鏌ユ墦鍖呭悗鐨凧AR鏂囦歡
濡傛灉鎮ㄧ殑搴旂敤紼嬪簭琚鎵撳寘鎴怞AR鏂囦歡錛岃鋒鏌JAR鍐呭癸紝紜淇濊祫婧愭枃浠剁『瀹炶鍖呭惈鍦ㄥ唴銆
### 5. 璋冭瘯
濡傛灉璧勬簮浠嶇劧鏃犳硶鍔犺澆錛屾偍鍙浠ユ墦鍗板綋鍓嶇殑宸ヤ綔鐩褰曟潵紜瀹氭偍鐨勭▼搴忓湪鍝閲岃繍琛岋細
```java
System.out.println(System.getProperty("user.dir"));
```
榪欏皢鏄劇ず鎮ㄧ殑紼嬪簭灝濊瘯浠庡摢涓鏂囦歡緋葷粺浣嶇疆鍔犺澆鏂囦歡璧勬簮錛岃繖鍙浠ュ府鍔╂偍璋冩暣鐩稿硅礬寰勩
### 6. 寮傚父澶勭悊
鏈緇堬紝紜淇濇偍鐨勭▼搴忚兘澶熶紭闆呭湴澶勭悊璧勬簮鏈鎵懼埌鐨勬儏鍐碉紝閫氳繃閫傚綋鐨勫紓甯稿勭悊錛屾偍鍙浠ユ彁渚涙洿澶氬叧浜庨敊璇鐨勪俊鎮錛
```java
try (InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("path/to/your/resource.ext")) {
if (inputStream == null) {
throw new FileNotFoundException("璧勬簮鏈鎵懼埌錛歱ath/to/your/resource.ext");
}
// 浣跨敤璧勬簮...
} catch (IOException e) {
e.printStackTrace();
}
```
浣跨敤榪欎簺姝ラわ紝鎮ㄥ簲璇ヨ兘澶熷畾浣嶉棶棰樻墍鍦錛屽苟瑙e喅Java紼嬪簭涓閬囧埌鐨勮祫婧愯礬寰勯敊璇銆
㈤ java的java project創建了不知道在哪裡
點擊win加r進入命令頁面查詢。
進穗肢入命令頁面後,根據命名的項目名稱寫入吵閉命令頁面,然後回車查詢,根據命令頁面提示的路徑前往電腦查看。
下載開發Java項目的編程語言時,沒有更改的情況下是在C盤保存,如果更改根據自己更改的路升族裂徑查看,同時程序員在寫Java項目時,jvm虛擬機會生成一個class文件。
㈥ 如何在java web項目中獲得相對路徑
第一步: 先獲得classpath路徑
Stringclasspath=this.getClass().getResource("/").getPath().replaceFirst("/","");
這樣子可以得到classpath路徑,類似於:
F:/projects/JavaStudyParent/study-springmvc-junit-test/target/springmvc-junit-test/WEB-INF/classes/
然後把WEB-INF/classes截取就能獲得WebAPP目錄啦:
StringwebappRoot=classpath.replaceAll("WEB-INF/classes/","");
得到的結果就是:
F:/projects/JavaStudyParent/study-springmvc-junit-test/target/springmvc-junit-test/
通過這個路徑你就能獲取該文件夾下的所有文件啦