复制/粘贴无法在签名的Applet中工作

use*_*932 5 java clipboard applet next-generation-plugin signed-applet

我有一个签名的小程序(正确验证jarsigner)由于某种原因不允许从系统剪贴板复制和粘贴到JTextField尽管文档告诉我它应该适用于已签名的小程序.

此外,我还有其他小程序,这些小程序使用相同的密钥文件签名,允许我复制和粘贴文本.我在互联网上搜索高低,似乎无法找到任何线索.是什么让我把头发拉出来似乎没有办法调试这个(控制台没有输出 - 没有抛出异常).

有没有人对如何调试这个有任何想法,以找出为什么Java不喜欢这个特定的applet?

非常感谢任何建议!

Den*_*nis 10

好吧,事实证明,2011年2月发布了Java Plug-in 1.6.0_24,系统剪贴板中的复制和粘贴被视为安全漏洞并被禁用.您可以复制和粘贴BETWEEN小程序.但是,如果您尝试使用主剪贴板中的某些内容,则无法将其复制到其中.

因此,有一些解决方法可供选择.您可以回滚到早期版本的插件.这样可行,但是未来版本的可能性仍然会保持禁用复制和粘贴,因此您永远无法升级.

另一种方法是提供自定义Java安全策略文件,该文件允许再次访问系统剪贴板.

首先找到您的本地Java安全策略文件.该文件名为java.policy,应位于Java安装的lib\security文件夹中.在Windows 7上,可以在C:\ Program Files(x86)\ Java\jre6\lib\security中找到它.将此文件复制到您的主文件夹(例如C:\ Users\Kyle).将文件重命名为.java.policy(请注意开头的句点).在文本编辑器中编辑文件.找到这一行文字:

// "standard" properies that can be read by anyone
Run Code Online (Sandbox Code Playgroud)

在它下面添加以下行,如下所示:

// "standard" properies that can be read by anyone
permission java.awt.AWTPermission "accessClipboard";
Run Code Online (Sandbox Code Playgroud)

保存文件.关闭所有打开的浏览器并确保在测试之前Java没有运行.

来源:http://blogs.oracle.com/kyle/entry/copy_and_paste_in_java

  • 谢谢 - 我已经看到了这一点,但我的印象是它仅针对UNSIGNED小程序被禁用(根据我的研究).签名的applet仍然可以工作 - 另一个签名的applet目前允许复制和粘贴.还有什么想法吗? (2认同)