让 java.policy.applet 在 Eclipse 之外工作

Posted

技术标签:

【中文标题】让 java.policy.applet 在 Eclipse 之外工作【英文标题】:Getting java.policy.applet working outside of eclipse 【发布时间】:2012-01-13 21:43:21 【问题描述】:

这应该是一个相对简单的修复,但我找不到如何让它工作。我创建了一个 java 小程序,它在 eclipse 中运行时效果很好,不幸的是我无法让它在 eclipse 之外运行。这是错误的重要部分:

Caused by: java.security.AccessControlException: access denied (java.io.FilePermission background.jpg read)

我发现这似乎与政策有关,但我猜我对它的理解还不够好,无法让它发挥作用。如果我将带有 applet 标记的 html 文件放在 eclipse bin 文件夹中,那么它工作得很好,但是如果我将该文件夹中的所有内容(包括 java.policy.applet 文件)复制到另一个文件夹,则会出现上述错误。

我花了几个小时试图解决这个问题,请帮助!如果我可以告诉程序该文件在哪里,因为它似乎完全忽略了它。这是 eclipse 自动生成的策略文件:

/* AUTOMATICALLY GENERATED ON Tue Apr 16 17:20:59 EDT 2002*/
/* DO NOT EDIT */

grant 
    permission java.security.AllPermission;
;

【问题讨论】:

你能贴一段代码,你在哪里做文件操作(打开图像文件)? 这个background.jpg在编译Java包??? 【参考方案1】:

要指定策略文件的位置,请使用:

appletviewer -J-Djava.security.policy=file:///path/to/policy/file HTMLfile

【讨论】:

【参考方案2】:

我在为比利时电子身份证开发小程序时遇到了同样的问题。我的解决方案是创建一个自签名 JAR。我正在研究如何直接在 Eclipse 中执行此操作。 确保您的 jdk 在您的路径中(以便您可以访问以下工具),然后:

keytool -genkey -keystore yourKeyStoreFile -alias toto keytool -selfcert -keystore yourKeyStoreFile -alias toto

这两个命令创建密钥和自签名证书,并且只需要执行一次。然后,要实际签署 jar,请使用:

jarsigner -keystore yourKeyStore jarfile.jar toto

希望这会有所帮助...

【讨论】:

以上是关于让 java.policy.applet 在 Eclipse 之外工作的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法让 EC2 实例中的请求保持超过 60 秒?

无法让 cron 在 Amazon EC2 上工作?

如何让 EC2 上的 Node.js 服务器永远运行?

如何让 AWS ECS 自动将我的容器的端口映射到主机(EC2)

如何让 AWS EC2 不重置我的 sshd_config 文件?

Red5 媒体服务器:如何让 rtmp 在 Amazon EC2 上运行?