我是靠谱客的博主 无情抽屉,最近开发中收集的这篇文章主要介绍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

最后

以上就是无情抽屉为你收集整理的maven编译提示:程序包com.sun.image.codec.jpeg不存在的全部内容,希望文章能够帮你解决maven编译提示:程序包com.sun.image.codec.jpeg不存在所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部