这个问题最终是由一个无效的类引起的
icu4j-2.6.1如中可以看到这个帖子。具体来说,此文件无效:
com/ibm/icu/impl/data/LocaleElements_zh__PINYIN.class
这是识别损坏文件的简单方法:
for x in PATH_TO_EXTRACTED_JAR*.class; do java -cp PATH_TO/javassist.jar javassist.tools.Dump $x >/dev/null 2>&1 || echo "$x is invalid"done
maven通过其传递依赖关系间接包含了此文件,这就是为什么我不认识该页面是指错误,而jar中包含的文件才是导致问题的原因和原因。这就是我的jar-with-
dependencies捆绑包中包含的最终结果:
jaxen-1.1.1 -> xom-1.0 -> icu4j-2.6.1
在将以下排除项添加到
jaxen依赖项之后,一切对我来说都正常工作(但是,如果需要其本地化部分,请小心):
<exclusions> <exclusion> <groupId>com.ibm.icu</groupId> <artifactId>icu4j</artifactId> </exclusion></exclusions>
另一个选择是从jar文件中删除有问题的文件:
#!/bin/sh shopt -s extglobshopt -s globstarfor x in **/*.jar ; do zip -d $x 'com/ibm/icu/impl/data/*_zh*' >/dev/null 2>&1 && echo "Removed corrupted files from $x"done
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)