我有一个具体的要求来读取jar文件的资源,然后将其写入到本地磁盘。 但是,当我试图写该资源到本地磁盘的异常:
java.io.FilePermission (write) is raised.
我有我的罐子签署。 我也曾尝试以下解决方案,但它也不起作用。
AccessController.doPrivileged(new PrivilegedAction()
似乎没有任何工作。
我失去了签约罐子,因为这是最常见的解决方案随处可见之后的一个步骤?
我为什么能写入本地文件,而无需使用策略文件(因为无法在每个客户端机器上完成)?
该JNLP还需要指定:
<security>
<all-permissions/>
</security>
见JNLP文件语法的详细信息。
我一般会使用FileSaveService
在汤姆的回答详细,但是这听起来更像是一种情况:“文件”可以是一个默认属性文件来配置应用程序。 保存服务不太适合,由于应用程序。 有没有办法知道那里的文件存储,或如何日后访问。 出于安全原因, FileContents
在适当位置上提供的对象File
没有任何方法返回的路径。
在这种情况下,提取配置的详细信息。 文件和使用它们存储PersistenceService
的JNLP API的。 这里是一个演示。 的PersistenceService
。 该服务也可到沙箱应用程序。 (无代码签名巫术)。
您可以保存一个文件,与用户交互,使用未签名的应用程序Webstart的javax.jnlp.FileSaveService
。
也许你缺少一块是标志着aplication在JNLP文件的安全。 然而,写一个安全的应用程序是有点棘手,我不会推荐它。