我有一个带有applet代码的html文件,如
<applet code="myapplet.class" archive="http://localhost:8080/myapplets.jar"width="350" height="350"></applet>
如果html文件是机器的本地文件,但是如果该html文件位于共享驱动器(windows)上并且打开了html文件(以便地址栏中的地址为 \ X.X.X.X \ testhtml \ myapplethost.html)然后 当applet尝试加载时,抛出此异常
java.lang.SecurityException: Permission denied: http://localhost:8080/myapplets.jar
我已经添加了
http://localhost:8080 and file:\\X.X.X.X\testhtml
到例外列表。在java控制面板中将安全性降低到尽可能低(即中等)(JRE 1.7 upate 67),但此applet一直被阻止。是否有任何settign可以帮助在这里允许从共享位置访问applet?感谢
答案 0 :(得分:1)
applet的archive
参数只能引用applet启动的同一来源的档案(例如jar文件)。以下是official documentation:
出于安全原因,applet的类加载器只能从启动applet的相同代码库中读取。这意味着 archiveList 中的归档必须与代码库位于同一目录中或在子目录中。
如果您从共享驱动器加载HTML页面,则HTML文件中archive
标记的applet
属性不应指向http://localhost:8080/myapplets.jar
。很可能这只是一个错误(你忘记更改它或忘记使用相对URL)。
只需将archive
属性更改为相对网址即可。像这样:
<applet code="myapplet.class" archive="myapplets.jar" width="350" height="350">
</applet>
Absoulte URL总是一个坏主意,对于applet存档尤其如此。
答案 1 :(得分:0)
使用共享驱动器路径(如Z:而不是\ server),它可以工作。