警告Access restriction 问题的解决及maven部署时包找不到的问题解决

今天在用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,我想也是可以正确执行的。

你可能感兴趣的:(eclipse,jdk,maven,properties,Access,library)