Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解决java.lang.SecurityException:?_Java - Fatal编程技术网

如何解决java.lang.SecurityException:?

如何解决java.lang.SecurityException:?,java,Java,如何解决安全异常 它在客户端显示以下错误。如何修复它 java.lang.SecurityException:类 “org.apache.commons.io.output.ByteArrayOutputStream”的签名者 信息与中其他类的签名者信息不匹配 同一包 在类路径中有多个JAR包含相同的类。其中一个或多个已签名。如果一个Jar被签名,那么如果一个类来自一个Jar,而另一个类来自另一个Jar,则会出现此错误。如果您拥有不同版本或库的相同Jar,并且将另一个库的类添加到了自己的Jar中

如何解决安全异常

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

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


在类路径中有多个JAR包含相同的类。其中一个或多个已签名。如果一个Jar被签名,那么如果一个类来自一个Jar,而另一个类来自另一个Jar,则会出现此错误。如果您拥有不同版本或库的相同Jar,并且将另一个库的类添加到了自己的Jar中,那么大多数情况下都会发生这种情况

找到罪魁祸首并加以纠正不是一个简单的过程。到目前为止,我发现的最简单的方法是在bashshell的for循环中使用
grep
jartf
。这显然意味着您需要一个Unix系统或Cygwin:

for i in *.jar; do
    jar tf "$i" | grep ByteArrayOutputStream | grep -c commons > /dev/null && echo "$i"
done
Powershell可能会带来类似的功能,但我不知道Powershell


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

你在类路径中有哪些jar?Bishan:我在这里使用了太多的jar,你在问任何特定的jar吗?你在类路径中有
commons io.jar
?那么版本是什么?是的,我使用的是commons io\commons io\2.4\commons-io-2.4.jarHmmm。将其替换为
commons-io-2.1.jar
,然后尝试一下。