我目前遇到一个非常奇怪的错误:当我使用参数-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
启动我的应用程序并通过Eclipse进行远程连接时,一切正常。但是当我删除这个参数(没有其他改变)时,我会得到以下异常:
Caused by: javax.imageio.IIOException: I/O error reading PNG header!
at com.sun.imageio.plugins.png.PNGImageReader.readHeader(PNGImageReader.java:315) ~[na:1.8.0_92]
at com.sun.imageio.plugins.png.PNGImageReader.readMetadata(PNGImageReader.java:654) ~[na:1.8.0_92]
at com.sun.imageio.plugins.png.PNGImageReader.readImage(PNGImageReader.java:1248) ~[na:1.8.0_92]
at com.sun.imageio.plugins.png.PNGImageReader.read(PNGImageReader.java:1606) ~[na:1.8.0_92]
at javax.imageio.ImageIO.read(ImageIO.java:1448) ~[na:1.8.0_92]
at javax.imageio.ImageIO.read(ImageIO.java:1400) ~[na:1.8.0_92]
at com.jgoodies.application.ResourceConverters$DefaultConverter.convertImage(ResourceConverters.java:452) ~[retest.jar:1.2.0-SNAPSHOT]
... 43 common frames omitted
Caused by: javax.imageio.IIOException: Bad length for IHDR chunk!
at com.sun.imageio.plugins.png.PNGImageReader.readHeader(PNGImageReader.java:247) ~[na:1.8.0_92]
... 49 common frames omitted
由于我真的没有改变任何其他东西,我想这与这个问题无关,因为图像文件显然没有损坏。
由于这对我来说是一个外国项目,它可能与第三方库或类似内容有关。我在Mac上,使用Java 1.8.0_92,如果这有关的话。
更新:如果我删除特定的jar文件,问题也会消失。但是,稍后我会收到NoClassDefFoundError的错误,所以需要该jar文件。有什么想法、建议可以继续吗?
ImageIO
是基于插件的,因此如果“有问题”的JAR包含一个或多个ImageReaderSpi
,那可能会解释部分问题。此外,额外的运行时参数(或纯粹的巧合)可能会改变已安装插件的顺序。但这似乎有点牵强。确实很奇怪。 - Harald KMETA-INF/services
文件夹,问题也会消失...但另一个问题出现了。我不确定它们是否有关联,所以还没有最终解决方案。 - roesslerj