2012-10-13 47 views
1

我有一個Java應用程序是用戶可以創建一個文本文件,無論他使用此代碼在他的計算機上想要保存它:在Windows上創建文件7的原因「拒絕訪問」異常

File txtFile = new File(path); 
Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(txtFile), "UTF-8")); // Error occurs here. 

但許多用戶使用Windows 7報告當將文件保存到「C:\」時,他們得到「訪問被拒絕」錯誤。我發現這是因爲他們需要管理員權限才能將文件保存在Win7中的此類路徑中。

而不是顯示一個警告信息給用戶的:「您可以將文件無法保存在此路徑」,我可以將文件保存在這個路徑在某種程度上,就像如果有一種方法具有管理員權限Win7通過Java代碼,或類似的東西?

回答

3

簡答題 - 沒有。

如果您需要保存到C盤,他們需要權限。如果此程序只需創建文件,則可以使用用戶臨時文件夾。請參閱System.getProperty()

2

Windows Vista和Windows 7啓用了UAC。 UAC拒絕在某些位置創建新文件,而沒有管理權限。

檢查您的權限並確保在管理帳戶中執行java可執行文件,或禁用UAC。

要做到這一點,請轉到「開始」鍵入「CMD.EXE」 - >右鍵單擊cmd.exe文件並以管理員身份運行。然後導航到包含.class文件的位置。然後輸入java ClassFile並按回車鍵

2

您是否在使用cmd,即Dos來運行您的文件或eclipse?無論你使用的是什麼 它看起來像你正在作爲默認用戶運行。在Windows 7中,默認情況下,UAC將文件寫入到system.directory。

執行下列操作,並希望它應該工作1

> If cmd.exe 
>  Then when you open run from start menu. Right click it, select run as administrator and then run your application 
>  
>  If eclipse/any other IDE 
>  
>  Close existing, right clicl eclipse,select run as admim and then run your application 
> 
> Hope this helps 
+0

請介意的壓痕,我使用的是電話回覆.. :-) –

相關問題