繁体   English   中英

如何解决java.lang.SecurityException:?

[英]How to Solve the java.lang.SecurityException:?

如何解决安全异常?

它在客户端显示以下错误。 如何修复?

java.lang.SecurityException:类“org.apache.commons.io.output.ByteArrayOutputStream”的签名者信息与同一包中其他类的签名者信息不匹配

您的类路径中有多个包含相同类的 Jars。 其中一项或多项已签署。 如果 Jar 已签名,并且一个类来自一个 Jar 而另一个类来自另一个 Jar,则您可能会收到此错误。 如果您有不同版本的相同 Jars 或将另一个库的类添加到其自己的 Jar 的库,则大多数情况下会发生这种情况。

找到罪魁祸首并修复它,并不是一个简单的过程。 到目前为止,我发现的最简单的方法是在 bash-shell 的 for 循环jar tf grepjar tf一起使用。 这显然意味着你需要一个 Unix 系统或 Cygwin:

for i in *.jar; do
    jar tf "$i" | grep ByteArrayOutputStream | grep -c commons > /dev/null && echo "$i"
done

Powershell 可能会带来类似的功能,但我不知道 Powershell。

这个简短的脚本输出所有的 jars,其中包含一类包.commons。 .ByteArrayOutputStream。 在我的例子中,只输出了 commons-io-1.0.jar 但你应该看到多个文件名。 下一步是找出为什么这些特定的 jars 在你的类路径中,并决定下一步,比如删除其中一个 jars 等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM