2

我在我的网站上使用未签名的小程序。从 java 1.6u19 开始出现混合代码警告。这很奇怪,因为 applet 只是一个 jar,它不使用任何外部资源。

我发现问题是由 C:\Program Files\Java\jre6\lib\applet 目录中的 WMPNS.jar 引起的。这是一个来自 windows 媒体播放器的签名 jar。Java 将它与我未签名的小程序一起加载,并导致警告。删除该文件可以解决问题,但我不能要求我的用户将其删除。

是否有可能以某种方式阻止加载该罐子?

从http://download.oracle.com/javase/tutorial/deployment/applet/getStarted.html运行小程序时来自 java 控制台的日志:

Trace level set to 5: all ... completed.  
[...]  
sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@1a9883d  
basic: Plugin2ClassLoader.addURL parent called for file:/C:/Program%20Files/Java/jre6/lib/applet/WMPNS.jar  
basic: Plugin2ClassLoader.addURL parent called for http://download.oracle.com/javase/tutorial/deployment/applet/examples/dist/applet_HelloWorld/applet_HelloWorld.jar

这里还有其他人在 JRE\lib\applet 目录中有 WMPNS.jar 吗?

4

3 回答 3

1

我已经确认 Andrew Thompson 的诊断是由 WMPNS.jar 引起的。我向 Oracle 报告了一个错误:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7031651

但截至撰写本文时,它还没有出现在公共数据库中。(真的,这是微软的错误——他们不应该将签名的 JAR 卡在那个位置,但现在只有 Oracle 有能力解决这个问题;而且是 Oracle 改变了规则以提醒混合代码,而以前没有生成任何对话框。)

如果它真的出现,请投票!

于 2011-03-30T14:43:27.383 回答
0

非常感谢OP。这一直困扰着我多年。包括我自己在内的未签名的 java applet 都产生了这个警告,包括 Oracle 自己网站上的那些。我也有一个 WMPNS.JAR(从 2002 年开始!),删除它使那些可怕的混合代码警告消失了。这需要变成提示,让用户应用到自己的机器上。我怀疑MS通过windwos更新以某种方式将该文件偷偷溜进了文件夹,然后6.19 Java更新引起了问题。Oracle 可能应该修复 JRE 安装以查找该文件并将其杀死,因为我怀疑很多 XP 用户都会遭受这种痛苦。

于 2011-02-15T12:40:50.463 回答
0

我发现问题是由 C:\Program Files\Java\jre6\lib\applet 目录中的 WMPNS.jar 引起的。这是一个来自 windows 媒体播放器的签名 jar。

此框上该位置的小程序目录不包含任何存档,更不用说来自 Microsoft 的签名存档了。

鉴于 MS 过去与 Java/Sun 的“交互”,我建议在您的计算机磁盘中搜索恶意软件。请注意,我在 IE 上使用 FF,这可能是本例中问题的根源。

于 2011-02-08T18:05:36.763 回答