maven编译提示:程序包com.sun.image.codec.jpeg不存在

编译失败原因:

       JDK7的时候,com.sun.image.codec.jpeg类已经退休了,以后凡是带sun.*的类库将不会被支持。javac在编译代码时,当他尝试从rt.jar中找寻对应的类文件时,他会默认从对应的符号表文件ct.sym (同样在jre/lib/下)中查找该类是否存在,由于ct.sym中有意或无意的遗失了部分rt.jar中的类,包括com.sun.image.codec.jpeg,因此导致编译报错。

解决方法:

       通知javac编译器,在编译代码时,忽略该符号表ct.sym, 直接查找rt.jar,通过给javac传入对应的参数完成:

-XDignore.symbol.file

       Ant,Javac编译器本身都是用Java语言实现的,所以运行Ant和执行Javac任务使用同一个JVM实例;这是高效的表现。Ant的Javac任务的默认行为是调用运行Ant本身的任何JVM的标准编译器,然而如果你想要单独地调用编译器,比如你要使用一个高级别的编译器,你可以使用javac的fork属性:

<fork>true</fork>

pom修改如下

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>utf-8</encoding>
                    <compilerArgs><arg>-XDignore.symbol.file</arg></compilerArgs>
                    <fork>true</fork>

                </configuration>

            </plugin>


参考:

https://blog.csdn.net/javakakayi/article/details/51504587

https://blog.csdn.net/lday/article/details/18705837

https://www.cnblogs.com/dzblog/p/6971245.html

https://blog.csdn.net/ssh000/article/details/2482831

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值