2011-08-12 46 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.--这不是真正的问题。 (但是,如果应用程序到了文件处理程序试图打开文件的位置,这将会出现问题...) –

相关问题