2012-05-18 46 views
2

我有這樣的代碼:java.security錯誤時創建目錄(Linux)的

return (new File(pathA + File.separator + pathB + File.separator)).mkdir(); 

我相信它用來工作,但現在無法正常工作。該應用程序僅在Linux上運行,我們已經用Mint 9,Ubuntu 10.04,Kubuntu 12.04等進行了測試。它不創建預期的目錄。

該路徑位於具有777權限的目錄內。

堆棧軌道不是很有幫助。由於跟蹤顯示對java.security方法的幾次調用,因此我認爲這是一個權限問題。但實際的錯誤信息根本沒有幫助(可能是因爲代碼中的異常處理需要改進)。

什麼是在Linux上創建Java目錄的最佳方式?

+6

請分享實際的錯誤信息。也許我們確實發現它們比你的模糊描述更有幫助。 '新的文件(路徑).mkdir()'工作可能嗎?額外的分隔符不應該是必需的。 –

+0

*「但實際的錯誤信息根本沒有幫助(可能是因爲代碼中的異常處理需要改進)。」*所以改進它並複製/粘貼輸出。 –

+1

即使沒有證據,csi也無法工作。改進日誌並帶上它們,請 – Alfabravo

回答

2

問題是在我創建多個級別的目錄的路徑。解決方法是:

return (new File(pathA + File.separator + pathB + File.separator)).mkdirs(); 

注意mkdirs()上的「s」。

3
  • 提取path + File.separator爲一個變量。
  • 打印出來到控制檯
  • 開始在終端外殼和使用該應用程序正在運行的 mkdir <INSERT THE PATH TO THE DIR THAT YOUR APP IS TRYING TO CREATE HERE>

這應該給你的根本原因相同的用戶帳戶運行這個命令你問題。

如果這樣不能使答案明顯加上所有其他證據的問題。

+1

你是對的,我遺漏了一些重要的問題。我無意中忽略了有多個目錄級別的事實。我解決了這個問題,並回答瞭解決方案。 – MountainX

相關問題