由于WMPNS.jar,对未签名的Java小程序的混合代码警告

时间:2011-02-08 09:53:06

标签: java applet mixed-code

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

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

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

http://download.oracle.com/javase/tutorial/deployment/applet/getStarted.html运行applet时来自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吗?

3 个答案:

答案 0 :(得分:1)

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

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

但截至撰写本文时,尚未出现在公共数据库中。 (实际上,这是微软的错误 - 他们不应该在该位置粘贴已签名的JAR,但只有Oracle能够立即解决问题;并且Oracle曾经改变规则以警告混合代码生成任何对话框。)

如果它出现了,请投票支持!

答案 1 :(得分:0)

  

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

此框中该位置的applet目录不包含任何存档,更不用说来自Microsoft的已签名存档。

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

答案 2 :(得分:0)

非常感谢OP。 这一直困扰着我多年。包括我自己的未签名的Java小程序都产生了这个警告,包括那些在Oracle自己的网站上的警告。我也有一个WMPNS.JAR(从2002年开始!)并删除它使得那些可怕的混合代码警告消失了。这需要转化为用户应用于自己的机器的提示。我怀疑MS以某种方式将此文件隐藏到文件夹中,并且有些指向windwos更新,然后6.19 Java更新导致了问题。 Oracle可能应该修复JRE安装以查找该文件并将其删除,因为我怀疑很多XP用户都会受此影响。