写入通过JNLP本地文件(Write to a local file through JNLP)

2019-09-18 02:22发布

我有一个具体的要求来读取jar文件的资源,然后将其写入到本地磁盘。 但是,当我试图写该资源到本地磁盘的异常:

java.io.FilePermission (write) is raised.

我有我的罐子签署。 我也曾尝试以下解决方案,但它也不起作用。

AccessController.doPrivileged(new PrivilegedAction() 

似乎没有任何工作。

我失去了签约罐子,因为这是最常见的解决方案随处可见之后的一个步骤?

我为什么能写入本地文件,而无需使用策略文件(因为无法在每个客户端机器上完成)?

Answer 1:

该JNLP还需要指定:

<security>
    <all-permissions/>
</security>

见JNLP文件语法的详细信息。


我一般会使用FileSaveService在汤姆的回答详细,但是这听起来更像是一种情况:“文件”可以是一个默认属性文件来配置应用程序。 保存服务不太适合,由于应用程序。 有没有办法知道那里的文件存储,或如何日后访问。 出于安全原因, FileContents在适当位置上提供的对象File没有任何方法返回的路径。

在这种情况下,提取配置的详细信息。 文件和使用它们存储PersistenceService的JNLP API的。 这里是一个演示。 的PersistenceService 。 该服务也可到沙箱应用程序。 (无代码签名巫术)。



Answer 2:

您可以保存一个文件,与用户交互,使用未签名的应用程序Webstart的javax.jnlp.FileSaveService

也许你缺少一块是标志着aplication在JNLP文件的安全。 然而,写一个安全的应用程序是有点棘手,我不会推荐它。



文章来源: Write to a local file through JNLP