小例:

java代码:都可以成功

File file =new File("  ./xml/a.properties") ;
File file =new File("  xml/a.properties") ;

下面就会出错

File file =new File("   /xml/a.properties") ;

java 相对路径问题 和绝对路径_根目录


 总结:

.为当前目录,即工程名所在文件夹

 

 

下面的当前路径都是你的工程目录

File file =new File("./xml/a.properties") ;中的./xml/a.properties中的.是指当前路径哪么这句就是当前路径下的xml下的a.properties
File file1 =new File("xml/a.properties") ;中的xml/a.properties也代表了它会在当前路径下找xml然后找xml下的a.properties
File file2 =new File("/xml/a.properties") ;而这个中的/xml/a.properties表示绝对路径。

linux下他表示在xml文件下的a.properties而不是当前文件夹下的!

windows的这个路径表示Class文件所在路径

注意:

1. 当前路径:是你的工程目录即dom4jtest文件夹。
2. 根目录: 
     在linux下你这样写就是文件系统的xml目录下的a.properties
     window里面根目录是指 根目录指逻辑驱动器的最上一级目录,它是相对子目录来说的。打开“我的电脑”,双击C盘就进入C盘的根目录,双击D盘就进入D盘的根目录。其它类推。

根目录你的好好看看参考资料参考资料:http://baike.baidu.com/view/1061154.htm

 

我们可以多做几次试验,把”Example.class”移动到不同路径下,同时在那些路径下,执行”java Example”命令启动jvm,我们会发现这个”当前用户目录”是不断变化的,它的路径始终和我们在哪启动jvm的路径是一致的.搞清了这些,我们可以使用相对路径来创建文件,例如:

File file = new File(“a.txt”); File.createNewFile();


假设jvm是在”D:\”下启动的,那么a.txt就会生成在D:\a.txt;此外,这个参数还可以使用一些常用的路径表示方法,例如”.”或”.\”代表当前目录,这个目录也就是jvm启动路径.
所以如下代码能得到当前目录完整路径:

File f = new File(“.”);
String absolutePath = f.getAbsolutePath();
System.out.println(absolutePath);//D:\

最后要说说在eclipse中的情况:Eclipse中启动jvm都是在项目根路径上启动的.
比如有个项目名为blog,
其完整路径为:D:\work\IDE\workspace\blog.
那么这个路径就是jvm的启动路径了.所以以上代码如果在eclipse里运行,则输出结果为” D:\work\IDE\workspace\blog.”

Tomcat中的情况.如果在tomcat中运行web应用,此时,如果我们在某个类中使用如下代码:

File f = new File(“.”);
String absolutePath = f.getAbsolutePath();
System.out.println(absolutePath);


那么输出的将是tomcat下的bin目录.我的机器就是” D:\work\server\jakarta-tomcat-5.0.28\bin\.”,
由此可以看出tomcat服务器是在bin目录下启动jvm的.其实是在bin目录下的” catalina.bat”文件中启动jvm的.

 

http://zhidao.baidu.com/question/294872938.html