java - 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)
解决方案
@haraldK 感谢您的回答。我花了几天时间才真正弄清楚,但现在它正在工作。对我所做的事情的一点解释:
- 转移到 Maven 项目
- 添加到
pom.xml
所有依赖项 - 添加
maven-shade-plugin
- 使用了两个变压器:
ServicesResourceTransformer
和ManifestResourceTransformer
推荐阅读
- c++ - 有时可以使用 std::atomic 代替 C++ 中的 std::mutex 吗?
- javascript - Webpack 将多个动态导入与不同的 webpackExports 组合成 1 个块
- android-jetpack-compose - android jetpack compose rememberInfiniteTransition tween durationMillis >= 90195.动画将停留在最后一针
- c++ - 运行此搜索算法时出现空白输出屏幕
- c++ - 如何去除模板参数的冗余并增加其灵活性?
- google-play-protect - 无法提供 google play 保护上诉的链接
- c++ - 指针引用不同的值
- python - 如何使用装饰仅对列表中的数字求和?
- javascript - 如何安装 Flatpickr 插件
- python - 如何将活页夹徽章添加到文档中,使其作为图像可见?