我正在把我的jar读取和写入文件放到applet中。它会正确显示,直到我添加读写功能。然后Firefox只显示一个黑盒子(没有错误弹出窗口)。
我已经做了很多研究,似乎为了让它工作我需要让applet签名然后它会要求用户许可,但是我也读到我不能让applet写文件,它必须是服务器端。
所以我的问题是我可以让applet在没有服务器端脚本的情况下读写文件吗? 如果是这样,我如何让我的applet签名(我读了一些教程,但我对此有点新鲜)。
答案 0 :(得分:2)
签名的applet可以在本地计算机上读写文件。
您可以使用两种类型的证书,第一种是使用keytool创建的证书,JDK附带的应用程序。第二个选项是使用证书颁发机构(如Verisign)的证书对applet进行签名。
不同之处在于自制证书将向客户端显示警告消息,指明证书不受信任。这只是一个警告,但可以吓唬用户。来自真正的证书颁发机构的证书的缺点是它需要花钱。
生成证书使用 keytool -genkey
然后进行签名,这取决于你如何构建你的applet。
例如,如果你使用Ant,就会有一个signjar任务来签署applet。
答案 1 :(得分:2)
所以我的问题是我可以让applet在没有服务器端脚本的情况下读写文件吗?
当然,在1.6.0_10 +(1)JRE(“下一代”插件)中,它甚至不需要对Jars进行数字签名。
在下一代使用Java Web Start部署的小程序。插件可以访问JNLP API服务。 API的FileContents对象提供基本I / O.这是demo. of using the FileContents(链接中也提供了源代码)。
(1)注意:自Java 1.2以来,JWS可以启动自由浮动小程序。但是使用1.6.0_10 + JWS小程序可以嵌入浏览器窗口(至少对于Win。& * nix来说 - 我听说'没有Mac'。)。