我运行一个简单的Java程序与下面的目录结构:Java VM如何决定user.dir系统属性的值?
MyProject (A project in my Eclipse IDE)
'-- src
'-- Hello.java
在Hello.java我打印的“user.dir来”系统属性的值。
System.out.println(System.getProperty("user.dir"));
我的班级的编译文件存储在MyProject\bin
文件夹中。
当我从Eclipse(右键单击源文件并单击运行 - > Java应用程序)运行此类时,它会在控制台窗口中打印'MyProject'文件夹的路径,即D:\Projects\Workspace\MyProject
。
然后我用命令窗口运行相同的程序。这是我上键入窗口:
D:\Projects\Workspace\MyProject\bin>java Hello
和输出的控制台:D:\Projects\Workspace\MyProject\bin
bin
已经被添加到了user.dir来之前的值。
此外,为了检查更多,我这个时间从不同的文件夹执行的Java命令上命令窗口:
D:\Projects\Workspace\MyProject>java -classpath D:\Projects\Workspace\MyProject\bin Hello
上命令窗口此时间输出是:D:\Projects\Workspace\MyProject
该值的变化时,我在命令窗口中更改了文件夹,当我从Eclipse运行程序时,user.dir的值是项目文件夹。所以我想明白,推导'user.dir'的价值是什么基础? JVM如何决定,user.dir的价值是什么?
我一直在寻找从年龄这个答案..请务必使用新的文件(“” )找到当前目录。谢谢。 – 2013-04-16 17:51:40