问题出现
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /var/jenkins_home/workspace/demo/src/main/java/top/yexuejc/util/ImageUtils.java:[22,31] error: package com.sun.image.codec.jpeg does not exist
[ERROR] /var/jenkins_home/workspace/demo/src/main/java/top/yexuejc/util/ImageUtils.java:[23,31] error: package com.sun.image.codec.jpeg does not exist
[ERROR] /var/jenkins_home/workspace/demo/src/main/java/top/yexuejc/util/ImageUtils.java:[202,12] error: cannot find symbol
[ERROR] class ImageUtils
maven 打包说是找不到包 com.sun.image.codec.jpeg
What? 我在 IDEA 里面重复试了 n 次都能正常打包啊??? google、百度说什么 rt.jar 指定位置问题(修正方法如下)
<plugins> <!-- 解决:java: 程序包com.sun.image.codec.jpeg不存在 这个类文件的位置在jre/lib/rt.jar,而我们设置的java_home下面的lib/dt.jar中没有这个文件, 导致编译失败。通过配置maven-compiler-plugin插件可以解决此问题。 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>${java-version}</source> <target>${java-version}</target> <encoding>UTF-8</encoding> <compilerArguments> <verbose/> <!--注意自己的 java.home=C:/Program Files/Java/jdk1.8.0_144/jre--> <!-- <bootclasspath>${java.home}\lib\rt.jar;${java.home}\lib\jce.jar</bootclasspath> linux下 ; 是 : 所以使用下面方法--> <bootclasspath>${java.home}/lib/rt.jar${path.separator}${java.home}/lib/jce.jar</bootclasspath> </compilerArguments> </configuration> </plugin>
也有说是 jdk 版本问题的 换到1.6版本就不会报错
。都什么年代了?java14 都老了 😂
还是继续找,终于看到了几篇不一样的 🙏
com.sun.image.codec.jpeg.JPEGCodec 这个包是属于 sun 公司的私有类,openJdk 上没有,so 怎么能找到呢 😂
既然找不到这个类,那么解决方案就多了啊,不使用这个类
我使用 javax.imageio.ImageIO
作为替换
/** * @params 图片文件 tag * BufferedImage tag = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB); * @params formatName 文件格式 png * @params srcfile 文件对象 new File("/tmp/a.png"); */ ImageIO.write(tag, formatName, srcfile);
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于