自 Java 7 Update 25 以来,Applet的方法getCodeBase()
似乎为本地applet返回NULL
。我没有在 Java 7u25 发布说明中找到任何可以宣布/解释此更改的内容,但我发现email discussion声称更改实际上是预期的。
任何人都可以帮我找到资源/文档,我可以在其中了解有关此更改的更多信息吗?
答案 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具有所有权限)