今天在用maven打jar包的时候,发现如下错误:
xxx.xxx.CImage[17,31]行,错误:程序包com.sun.image.codec.jpeg不存在 |
打开CImage类的17行,发现引用的“com.sun.image.codec.jpeg”包下的类,在类文件中的import位置,发现有警告信息,警告信息如下:
com.sun.image.codec.jpeg is not accessible due to restriction on required library |
警告信息原因:
是使用了eclipse自带的jre,没有使用本机安装的jdk环境。
警告信息解决办法:
1. 打开工程,在“JRE System Library”上右键"properties",在打开的界面中选择“WorkSpace default JRE”选项,而不要选择“Execute environment”选项。
2.选择eclipse的“project”菜单的“clean”选项,clean下当前工程即可
程序包(com.sun.image.codec.jpeg)找不到解决办法:
在eclipse中发现类编译没有错误,但是类“com.sun.image.codec.jpeg”是在jdk/jre/rt.jar中,怀疑是不是jre中比jdk中多包含了一些class文件呢?抱着尝试的心态修改了maven的安装目录/bin/mvn.bat 文件,该文件中“JAVA_HOME”是指向jdk目录,现修改为指向“xxx/jdk/jre”(调整为指向jdk中的jre目录)。
重新执行 mvn deploy -Dmaven.test.skip=true
模块部署成功,看来真的是需要jre来部署。
但是在eclipse中使用maven的package命令时会报同样的错误,因为eclipse中我使用的1.7版本的jdk,而不是jre,如果切换到jre,我想也是可以正确执行的。