2013-05-06 82 views
0

下面的代碼行正常工作與Eclipse爲什麼System.getProperty(「user.name」);不能從命令行工作?

Path file = Paths.get(System.getProperty("user.home"),"Desktop","Peppe.txt"); 

但是當我嘗試從終端上運行它,它給了我回此錯誤消息

java.nio.file.NoSuchFileException: /root/Desktop/Peppe.txt 

理論上System.getProperty("user.name")應該返回一個平臺indipendent根路徑的位?不是嗎?

+0

問題是,它使用Eclipse工作正常,但它不是從使用同一臺計算機的終端。 Ubuntu 11.10上的Java 7 – Rollerball 2013-05-06 16:39:56

+1

看起來你試圖在Eclipse和命令行之間以不同的用戶身份運行應用程序。 – 2013-05-06 16:41:03

+1

你用root登錄或用戶登錄運行你的程序嗎? – timactive 2013-05-06 16:46:38

回答

1

您正在運行的代碼爲root,並且很可能是root沒有桌面。

我不會假設代碼行爲不正確,相反我會假設你需要明白它的含義。

+0

那我該怎麼辦?如果我不以root身份運行它,它說「訪問被拒絕」,因爲我試圖訪問文件(即使我更改了PosixPermissions,因此添加了OTHERS_WRITE – Rollerball 2013-05-07 08:33:41

+0

實際上,「訪問被拒絕」錯誤消息僅出現在具有:O奇怪的 – Rollerball 2013-05-07 08:54:31

+0

也許這個目錄沒有權限,或者這個目錄是一個文件,或者這個文件是一個目錄,root可以阻止它自己訪問某些東西(即使它可以如果它想改變它)即使'root'也不能混淆文件和目錄(太多) – 2013-05-07 22:56:07

相關問題