首页 > 解决方案 > TwelveMonkeys ImageIO 在使用 OpenJDK8 构建到 jar 后无法正常工作

问题描述

我目前正在使用这个库为我的程序添加额外的功能: https: //haraldk.github.io/TwelveMonkeys/TwelveMonkeys ImageIO。

它在 Editor - Intellij IDEA 2020.1.1 中运行良好,但是当我将项目构建到 jar 中时,它不起作用。

错误:

Exception in thread "main" javax.imageio.IIOException: Unsupported Image Type
        at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageReader.java:1036)
        at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(JPEGImageReader.java:1007)
        at javax.imageio.ImageIO.read(ImageIO.java:1462)
        at javax.imageio.ImageIO.read(ImageIO.java:1309)

此错误表明使用了内部 java imageio,而不是来自 TwelveMonkeys。我试图在模块中设置优先级,但这也没有帮助:

模块 工件

爪哇版:

java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (Zulu 8.46.0.19-CA-win64) (build 1.8.0_252-b14)

标签: javaintellij-ideajava-8twelvemonkeys

解决方案


@haraldK 感谢您的回答。我花了几天时间才真正弄清楚,但现在它正在工作。对我所做的事情的一点解释:

  1. 转移到 Maven 项目
  2. 添加到pom.xml所有依赖项
  3. 添加maven-shade-plugin
  4. 使用了两个变压器:ServicesResourceTransformerManifestResourceTransformer

推荐阅读