2012-08-23 64 views
1

好吧,我正在使用JAVA DOM解析XML文件。 無論何時程序到達應該解析XML文件的地步,我都會得到一個「AccessControlException」,表示「訪問被拒絕」。 我已經使用JAVA DOM解析了許多XML文件,這是我第一次得到這個異常。 我在做什麼錯?使用JAVA DOM解析XML文件時出現AccessControlException

下面是XML文件:

<?xml version="1.0" encoding="UTF-8" ?> 
<root> 

</root> 

這裏是應該解析器它的代碼:

DocumentBuilderFactory bdf = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder bd = bdf.newDocumentBuilder(); 
     Document doc = bd.parse("excersize.xml"); 

最後這裏是我的錯誤:

java.security.AccessControlException: access denied ("java.io.FilePermiss 
ion" "\excersize.xml" "read") 

編輯

幸運的是,一段時間後,我得到了它使用的政策文件,但是因爲如果我鍵入XML文件的完整目錄什麼原因,它只能工作

工作

Document doc = builder.parse("file:/B:/Programming/Java/Programs/new/excersize.xml"); 

但這

Document doc = builder.parse("excersize.xml"); //The xml file is in the same directory as the java source file, the class file, and the html file 

雖然這是可以容忍的,我喜歡讓我的文件「移動準備」,使他們沒有一個y具體的地址,但相對於.java和.class文件而言是地址。任何幫助,以幫助我找出這個問題將不勝感激:)

+0

你是否有意在SecurityManager(一個applet)下運行代碼? – jtahlborn

+0

是的,這是通過一個小程序運行......我可以不使用小程序中的DOM? – Nigh7Sh4de

回答

2

異常說這一切,你試圖訪問一個JVM無法訪問的文件。 也許你可以去看看documentation

編輯

默認情況下,小程序不能訪問客戶機的文件I/O。 你需要簽署你的小程序或edit the policy files to allow it

+0

是的,謝謝你我可以閱讀,但我怎麼給它許可,所以錯誤不會出現? – Nigh7Sh4de

+0

@Guitarroka我更新了我的答案 – Davz

+0

我用適當的權限創建了一個java.policy文件,並將它放在同一個目錄中,但它仍然不起作用。我必須在java文件中聲明我的策略文件嗎?如果我那麼怎麼做? – Nigh7Sh4de