1、点击报错的路径,会索引到在哪里使用了该程序包
2、ctrl + 鼠标左键,点击发现该包在rt.jar下面
com.sun.image.codec.jpeg不存在
JDK7的时候,这个类已经退休了,以后凡是带sun.*的类库将不会被支持,毕竟sun已经被收购多年了,还sun,sun的,oracle看着心里多难受,全部给搞掉。
javac在编译时,并不引用 rt.jar,用的是一个特别的symbol table(lib/ct.sym),这个symbol table不包含所有的sun包的类;
解决方法:
1.使用 -XDignore.symbol.file,忽略使用symbol table,这样javac编译时就会引用rt.jar:
2.使用新的,非sun.*包的依赖
添加plugin
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.5</version> <configuration> <source>1.8</source> <target>1.8</target> <compilerArgument>-XDignore.symbol.file</compilerArgument> </configuration> </plugin>
原文:https://www.cnblogs.com/hkgov/p/13573427.html