如果html位于共享驱动器上,则会阻止引用localhost的Applet

时间:2014-08-28 05:57:40

标签: java applet

我有一个带有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?感谢

2 个答案:

答案 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),它可以工作。