自Java 7更新25以来,Applet.getCodeBase()为本地Applet返回null

时间:2013-06-21 11:03:01

标签: java applet

Java 7 Update 25 以来,Applet的方法getCodeBase()似乎为本地applet返回NULL。我没有在 Java 7u25 发布说明中找到任何可以宣布/解释此更改的内容,但我发现email discussion声称更改实际上是预期的。

任何人都可以帮我找到资源/文档,我可以在其中了解有关此更改的更多信息吗?

3 个答案:

答案 0 :(得分:2)

发行说明在这里:

http://www.oracle.com/technetwork/java/javase/7u25-relnotes-1955741.html

它在那里。

“本地小程序为”

返回NULL

答案 1 :(得分:2)

更新(2014年1月21日):Java 7更新51似乎已修复此Java错误

Oracle声称此修复程序与“安全性”相关,并且需要阻止沙盒小程序获取对“文件路径”信息(运行小程序的文件夹名称)的访问权限。但甲骨文失败可怕,正如这里详细解释的那样:

http://www.duckware.com/tech/java-security-clusterfuck.html

Google“java bug报告”并向Oracle提交错误报告。

答案 2 :(得分:0)

Oracle bug #8017250(显然与Unable to debug applet with JDK 7u21 and 7u25有关)还有一些细节。特别是,它声明这是“不是问题”(即故意),并提出以下备选方案:

  

如果applet需要加载资源:

     
      
  • 如果资源在applet JAR中,他们应该可以直接用ClassLoader.getResoruceAsStream加载它,而不需要代码库信息。
  •   
  • 如果资源位于仲裁位置,而不是applet JAR内部,则应该有其他方式到达该位置,因为它无论如何都不是applet资源的一部分。 (例如user.home java系统属性,前提是他们的applet具有所有权限)
  •