A. java项目路径文件怎么写
有绝对路径与相对路径两种: 绝对路径:以引用文件之网页所在位置为参考基础,而建立出的目录路径。 绝对路径:以Web站点根目录为参考基础的目录路径。
B. 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文件的路径为 项目名srcest.txt;类TestPath所在包的第一级目录位于src目录下)
三 web项目根目录的获得(发布之后)1 从servlet出发
可建立一个servlet在其的init方法中写入如下语句(没有请求的话会抛空指针导常)
ServletContext s1=this.getServletContext();String temp=s1.getRealPath("/"); (关键)结果形如:F:omcat-6.0.36webappsest(test为项目名字)
如果是调用了s1.getRealPath("")则输出F:omcat-6.0.36webappsest(少了一个"")
2 从httpServletRequest出发(没有请求的话会抛空指针导常)
String path=request.getSession().getServletContext().getRealPath("/");
结果形如:F:omcat-6.0.36webappsest
四 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,“ / ”代表了myprojectme.class.getResourceAsStream("/com/x/file/myfile.xml");第二:前面没有 “ / ”代表当前类的目录me.class.getResourceAsStream("myfile.xml");me.class.getResourceAsStream("file/myfile.xml");
C. 在javaEE的项目中,怎样获取一个文件的全路径
File类有两个常用方法可以得到文件路径一个是:getCanonicalPath(),另一个是:getAbsolutePath(),可以通过File类的实例调用这两个方法例如file.getAbsolutePath()其中file是File的实例对象。下面是一个具体例子:123456789101112131415 public class PathTest{ public static void main(String[] args) { File file = new File(".\\src\\"); System.out.println(file.getAbsolutePath()); try { System.out.println(file.getCanonicalPath()); } catch (IOException e) { e.printStackTrace(); } }}getAbsolutePath()和getCanonicalPath()的不同之处在于,getCanonicalPath()得到的是一个规范的路径,而getAbsolutePath()是用构造File对象的路径+当前工作目录。例如在上面的例子中.(点号)代表当前目录。getCanonicalPath()就会把它解析为当前目录但是getAbsolutePath()会把它解析成为目录名字(目录名字是点号)。下面是上面程序在我电脑上的输出:G:\xhuoj\konw\.\src\G:\xhuoj\konw\src\
D. JAVA中如何得到文件路径
java文件中获得路径Thread.currentThread().getContextClassLoader().getResource("") //获得资源文件(.class文件)所在路径ClassLoader.getSystemResource("")Class_Name.class.getClassLoader().getResource("")Class_Name.class .getResource("/") Class_Name.class .getResource("") // 获得当前类所在路径System.getProperty("user.dir") // 获得项目根目录的绝对路径System.getProperty("java.class.path") //得到类路径和包路径打印输出依次如下:file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/com/xml/imp/F:\work_litao\uri_testF:\work_litao\uri_test\WebContent\WEB-INF\classes;F:\work_litao\uri_test\WebContent\WEB-INF\lib\dom4j.jar
E. 在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中的方法类似,不同的是此方法必须以'/'开头,参考http://riddickbryant.iteye.com/blog/436693) 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包中的类)四 属性文件的读取:方法 一InputStream in = lnew BufferedInputStream( new FileInputStream(name)); Properties p = new Properties(); 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
F. 如何获取项目绝对路径
用获取、用Java类获取或用servlet获取项目绝对路径。
G. 用Java获得项目的路径
getClass().getResource() 方法获得相对路径( 此方法在jar包中无效。返回的内容最后包含/)例如 项目在/D:/workspace/MainStream/Test在javaProject中,getClass().getResource("/").getFile().toString() 返回:/D:/workspace/MainStream/Test/bin/public String getCurrentPath(){ //取得根目录路径 String rootPath=getClass().getResource("/").getFile().toString(); //当前目录路径 String currentPath1=getClass().getResource(".").getFile().toString(); String currentPath2=getClass().getResource("").getFile().toString(); //当前目录的上级目录路径 String parentPath=getClass().getResource("../").getFile().toString(); return rootPath; }
H. 如何读取java项目中文件的相对路径
getResource()方法是默认在src目录下读取的,你跟里面传你的相对src的路径就可以了
I. java 获取项目存放的路径
${pageContext.request.contextPath}
J. java 获取项目本地路径
因为你的项目的执行文件文件就在tomcat路径下呀,你可以把tomcat的项目路径指定为你项目的路径,这样运行文件就是在你的项目下了,获取的路径就是你真正项目的路径了
未经允许不得转载:山九号 » java获取项目路径文件|java项目中文件的路径