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/
通过这个路径你就能获取该文件夹下的所有文件啦