今天把程序发布到tomcat下,做图片融合的时候,读取jpg文件老是报错
java.lang.NoClassDefFoundError: com/sun/imageio/plugins/jpeg/JPEGImageReader com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi.createReaderInstance(JPEGImageReaderSpi.java:89) javax.imageio.spi.ImageReaderSpi.createReaderInstance(ImageReaderSpi.java:296) javax.imageio.ImageIO$ImageReaderIterator.next(ImageIO.java:488) javax.imageio.ImageIO$ImageReaderIterator.next(ImageIO.java:472) javax.imageio.ImageIO.read(ImageIO.java:1397) javax.imageio.ImageIO.read(ImageIO.java:1322)
以为是库找不到,但后来发现,tomcat启动后,第一次访问报错不一样,如下
Can't load standard profile: GRAY.pf
java.awt.color.ICC_Profile$2.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.awt.color.ICC_Profile.getStandardProfile(Unknown Source)
java.awt.color.ICC_Profile.getInstance(Unknown Source)
java.awt.color.ColorSpace.getInstance(Unknown Source)
网上查资料发现,是找不到GRAY.pf文件,改文件放到 ../jre/lib/cmm/ 目录
后来查服务器上的jre目录,果然是缺改目录,从另一太机器上copy过来ok了
在此做个记录。