Test.java
///////////////////////
public class Test {
public Test() {
File f = new File("sucai");
if (f.exists()) {
System.out.println("路径正确");
} else
System.out.println("路径不正确");
}
public static void main(String[] args) {
new Test();
}
}
运行结果:路径正确
test.jsp
///////////////////////
<%
Test t = new Test();
%>
new File("文件名");
是在当前的user.dir指定的目录下,寻找“文件名”的文件。
public static void main(String[] args) {
new Test();
}
和
<%
Test t = new Test();
%>
2种不同的运行方式,System属性中的user.dir是不同的。所以2者在不同的目录下,寻找同一个文件名的文件,所以结果不一样。
[quote]
更绝的是System.getProperty("user.dir");
前者结果是project路径,后者是eclipse路径? [/quote]
前者是JavaSE的方式调用的,此时user.dir为project的目录;
后者为JavaEE的方式调用,此时Eclipse将启用自身的Tomcat的插件,来运行Java Web ,所以user.dir再次被相应地改变。