2011-08-12 45 views
4

是否可以使用java.util.Logging並記錄到java webstart應用程序中的文件? 我有以下日誌代碼:webstart應用程序日誌記錄權限被拒絕

 

Handler fh = new FileHandler("myapp.log"); 
Logger.getLogger(MyApp.class.getName()).addHandler(fh); 

,得到了以下異常:

 

java.security.AccessControlException: access denied (java.util.logging.LoggingPermission control) 
    at java.security.AccessControlContext.checkPermission(Unknown Source) 
    at java.security.AccessController.checkPermission(Unknown Source) 
    at java.lang.SecurityManager.checkPermission(Unknown Source) 
    at java.util.logging.LogManager.checkAccess(Unknown Source) 
    at java.util.logging.Handler.checkAccess(Unknown Source) 
    at java.util.logging.FileHandler.(Unknown Source) 
    at whoisapiclient.WhoisAPIClientApp.main(WhoisAPIClientApp.java:80) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at com.sun.javaws.Launcher.executeApplication(Unknown Source) 
    at com.sun.javaws.Launcher.executeMainClass(Unknown Source) 
    at com.sun.javaws.Launcher.doLaunchApp(Unknown Source) 
    at com.sun.javaws.Launcher.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

回答

6

訪問控制異常這樣說:

「訪問被拒絕(java.util.logging.LoggingPermission控制)」

javadoc的權限類這樣說:

「目前只有一個名爲LoggingPermission的控件,它授予了控制日誌配置的能力,用於例如添加或刪除處理程序,添加或刪除過濾器或更改日誌記錄級別。

你在做什麼明確下的瀑布‘控制’權限

您需要登錄您的應用程序,如果是創建/加入自己的日誌處理程序。


順便說一句,如果你設法解決LoggingPermission("control"),你會在打開日誌文件時遇到另一個訪問問題。

這兩個問題都可以通過解決簽署申請。然後,您就會遇到用戶必須接受/信任您的簽名密鑰的問題。但這很公平!至於Java安全沙箱可以告訴你,你在做什麼可能會損壞用戶的機器。

+0

在我簽署所有應用程序jar之後,它現在可以工作了!現在我可以在哪裏找到應用程序寫入工作目錄的日誌記錄和其他文件?工作目錄在哪裏? – user881480

+0

我不知道這個答案。我甚至不確定它是否可預測。嘗試做文件名搜索。或者,當您在JWS平臺上運行它時,請參閱new File(「myapp.log」)。getAbsolutePath()'。 –

0

你試過指定一個絕對路徑?也許問題在於你無法訪問應用程序本身的當前工作目錄。

+0

是否有指定當前工作目錄的便攜方式?什麼是webstart應用程序的合理工作目錄?我應該在哪裏放置日誌文件? – user881480

+0

@Shawn D.--這不是真正的問題。 (但是,如果應用程序到了文件處理程序試圖打開文件的位置,這將會出現問題...) –

相關問題