2012-12-27 54 views
0

所以,當我試圖從我的網站加載我的小程序,我得到問題與小程序的網站(的AccessControlException)

AccessControlException 
access denied ("java.io.FilePermission" "cursor.gif" "read") 

這相當於我的小程序中的代碼。

//Modify the cursor when inside the Applet 
Toolkit toolkit = Toolkit.getDefaultToolkit(); 
Image cursorIcon = toolkit.getImage("cursor.gif"); 
Point center = new Point(16, 16); 
Cursor cursor = toolkit.createCustomCursor(cursorIcon, center, "Cursor"); 
setCursor(cursor); 

HAVE一派,嘗試的東西,如

  • 簽署.jar
  • 創建策略的事情,但我不完全理解如何使它與該怎麼辦它(有人可以向我解釋如何詳細地做政策的事情嗎?)

當我運行我的小程序時工作得很好它在我的月食 此外,如果我註釋掉上面的代碼,我的小程序工作,所以只是該部分給我一個錯誤。

+0

'「cursor.gif」'這似乎是一個應用程序資源 - 您用小程序一起的文件系統上提供,而不是裝從..some地方最終用戶。如果它是由'網站'提供的,則小程序需要通過URL訪問該圖像。如果光標圖像位於applet元素的archive屬性中提到的jar中,那麼該URL通常是相對於代碼庫或文檔庫形成的,或者通過'getResource()'形成。 –

+0

*「當我在我的(在此處插入IDE)中運行它時,我的小程序工作得很好」*(嘆氣)希望每次聽到這個消息時我都有一塊錢。 ;) –

+0

而不是編輯你的原始問題,把你學到的信息和[回答你自己的問題](http://meta.stackexchange.com/questions/17463/can-i-answer-my-own-questions-even -those,其中-I-知道最答案前方的要求)。 –

回答

0

您必須包裝特權代碼裏面的代碼,如:where policy file location for my applet that needs clients permission to access resource?

而且有用的鏈接:

http://docs.oracle.com/javase/6/docs/technotes/guides/security/PolicyFiles.html關於Java政策執行

final String location = locationVal; 

File f = (File) AccessController.doPrivileged(new PrivilegedAction() 
{ 
    public Object run() 
    { 
     System.out.println("Getting File : " + location); 
     File outputFile1 = new File(location); 
     return outputFile1; 
    } 
}); 

此代碼是從複製。

http://docs.oracle.com/javase/1.3/docs/tooldocs/win32/policytool.html#Usage使用GUI的政策文件編輯器