2012-01-13 93 views
2

这应该是一个相对简单的修复,但我找不到如何使它工作。我创建了一个java applet,它在eclipse中运行时效果很好,不幸的是我无法在eclipse之外使用它。以下是错误的重要组成部分:获取java.policy.applet在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; 
}; 
+0

你能后的一段代码,你正在做的文件操作(打开图像文件)在哪里? – 2012-01-13 21:46:06

+0

这个'background.jpg'是在编译的Java包吗? – mKorbel 2012-01-13 21:47:07

回答

0

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

  • 密钥工具-genkey -keystore yourKeyStoreFile -alias TOTO
  • 密钥工具-selfcert -keystore yourKeyStoreFile -alias TOTO

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

  • 的jarsigner -keystore yourKeyStore jarfile.jar TOTO

希望这将有助于...

1

指定策略文件的位置,使用方法:

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