我運行一個簡單的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