Java applet权限被拒绝,安全异常

时间:2012-01-24 18:00:44

标签: java applet japplet

几周前我开始学习Java,现在我正在创建一个japplet游戏。

我正在使用Mac OS x,每当我尝试在浏览器中运行applet时,我都会遇到以下异常

java.lang.SecurityException: Permission denied:

如何解决此问题以便JApplet运行?这些文件都在本地,我在浏览器中本地运行JApplet。

以下是html代码

<html>
<head>
    <title>Java Game!</title>
</head>
<body>

    <applet code="/local/path/to/MainApplet.class"
            width=500
            height=500>
    </applet>

</body>
</html>

更新

以下是完整的控制台输出:

Java.lang.SecurityException: Permission denied:
 file:/path/to/MainApplet.class
    at sun.plugin2.applet.Applet2ClassLoader$1.run(Applet2ClassLoader.java:209)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:201)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:249)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:179)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:160)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:678)
    at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3045)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1497)
    at java.lang.Thread.run(Thread.java:680)
Exception: java.lang.SecurityException: Permission denied: file:/path/to/MainApplet.class

更新#2

我在Windows中尝试了相同的代码,完全没有问题。只有在Mac上才能提供这个例外,任何想法?

1 个答案:

答案 0 :(得分:0)

由于applet是从Internet提供的组件,因此Java的安全框架要求必须对applet进行签名,如果它将访问硬盘上的写入或读取等本地资源。

要对小程序进行签名,您可以查看以下链接:http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html