今天项目中遇到一个异常,异常代码如下:
写道
严重: Servlet.service() for servlet default threw exception
java.lang.IllegalArgumentException: Can't load standard profile: GRAY.pf
at java.awt.color.ICC_Profile$2.run(ICC_Profile.java:894)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.color.ICC_Profile.getStandardProfile(ICC_Profile.java:887)
at java.awt.color.ICC_Profile.getInstance(ICC_Profile.java:858)
at java.awt.color.ColorSpace.getInstance(ColorSpace.java:315)
at javax.imageio.ImageTypeSpecifier$Grayscale.<init>(ImageTypeSpecifier.java:587)
at javax.imageio.ImageTypeSpecifier.createGrayscale(ImageTypeSpecifier.java:668)
at javax.imageio.ImageTypeSpecifier.createSpecifier(ImageTypeSpecifier.java:1184)
at javax.imageio.ImageTypeSpecifier.getSpecifier(ImageTypeSpecifier.java:1101)
at javax.imageio.ImageTypeSpecifier.createFromBufferedImageType(ImageTypeSpecifier.java:884)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.<clinit>(JPEGImageReader.java:208)
at com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi.createReaderInstance(JPEGImageReaderSpi.java:67)
at javax.imageio.spi.ImageReaderSpi.createReaderInstance(ImageReaderSpi.java:296)
at javax.imageio.ImageIO$ImageReaderIterator.next(ImageIO.java:503)
at javax.imageio.ImageIO$ImageReaderIterator.next(ImageIO.java:487)
at javax.imageio.ImageIO.read(ImageIO.java:1417)
at javax.imageio.ImageIO.read(ImageIO.java:1282)
java.lang.IllegalArgumentException: Can't load standard profile: GRAY.pf
at java.awt.color.ICC_Profile$2.run(ICC_Profile.java:894)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.color.ICC_Profile.getStandardProfile(ICC_Profile.java:887)
at java.awt.color.ICC_Profile.getInstance(ICC_Profile.java:858)
at java.awt.color.ColorSpace.getInstance(ColorSpace.java:315)
at javax.imageio.ImageTypeSpecifier$Grayscale.<init>(ImageTypeSpecifier.java:587)
at javax.imageio.ImageTypeSpecifier.createGrayscale(ImageTypeSpecifier.java:668)
at javax.imageio.ImageTypeSpecifier.createSpecifier(ImageTypeSpecifier.java:1184)
at javax.imageio.ImageTypeSpecifier.getSpecifier(ImageTypeSpecifier.java:1101)
at javax.imageio.ImageTypeSpecifier.createFromBufferedImageType(ImageTypeSpecifier.java:884)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.<clinit>(JPEGImageReader.java:208)
at com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi.createReaderInstance(JPEGImageReaderSpi.java:67)
at javax.imageio.spi.ImageReaderSpi.createReaderInstance(ImageReaderSpi.java:296)
at javax.imageio.ImageIO$ImageReaderIterator.next(ImageIO.java:503)
at javax.imageio.ImageIO$ImageReaderIterator.next(ImageIO.java:487)
at javax.imageio.ImageIO.read(ImageIO.java:1417)
at javax.imageio.ImageIO.read(ImageIO.java:1282)
这里省略更多异常代码。。。。。看了半天不知道什么问题,只知道自己代码用用了一个类功能是出来图片大小的,如果图片太大压缩到固定大写。
import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import javax.imageio.ImageIO; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; public class ImageCompress { private File file = null; // 文件对象 private String inputDir; // 输入图路径 private String outputDir; // 输出图路径 private String inputFileName; // 输入图文件名 private String outputFileName; // 输出图文件名 private int outputWidth = 100; // 默认输出图片宽 private int outputHeight = 100; // 默认输出图片高 private boolean proportion = true; // 是否等比缩放标记(默认为等比缩放) public ImageCompress() { // 初始化变量 inputDir = ""; outputDir = ""; inputFileName = ""; outputFileName = ""; outputWidth = 100; outputHeight = 100; } /* * 图片处理 */ public String compress() { try { // 获得源文件 file = new File(inputDir + inputFileName); if (!file.exists()) { return ""; } Image img = ImageIO.read(file); // 判断图片格式是否正确 if (img.getWidth(null) == -1) { return "no"; } else { int newWidth; int newHeight; // 判断是否是等比缩放 if (this.proportion == true) { // 为等比缩放计算输出的图片宽度及高度 double rate1 = ((double) img.getWidth(null)) / (double) outputWidth + 0.1; double rate2 = ((double) img.getHeight(null)) / (double) outputHeight + 0.1; // 根据缩放比率大的进行缩放控制 double rate = rate1 > rate2 ? rate1 : rate2; newWidth = (int) (((double) img.getWidth(null)) / rate); newHeight = (int) (((double) img.getHeight(null)) / rate); } else { newWidth = outputWidth; // 输出的图片宽度 newHeight = outputHeight; // 输出的图片高度 } BufferedImage tag = new BufferedImage((int) newWidth, (int) newHeight, BufferedImage.TYPE_INT_RGB); /* * Image.SCALE_SMOOTH 的缩略算法 生成缩略图片的平滑度的 优先级比速度高 生成的图片质量比较好 但速度慢 */ tag.getGraphics().drawImage( img.getScaledInstance(newWidth, newHeight, Image.SCALE_SMOOTH), 0, 0, null); FileOutputStream out = new FileOutputStream(outputDir + outputFileName); // JPEGImageEncoder可适用于其他图片类型的转换 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); encoder.encode(tag); out.close(); } } catch (IOException ex) { ex.printStackTrace(); } return "ok"; } public String compress(String inputDir, String outputDir, String inputFileName, String outputFileName) { // 输入图路径 this.inputDir = inputDir; // 输出图路径 this.outputDir = outputDir; // 输入图文件名 this.inputFileName = inputFileName; // 输出图文件名 this.outputFileName = outputFileName; return compress(); } public String compress(String inputDir, String outputDir, String inputFileName, String outputFileName, int width, int height, boolean gp) { // 输入图路径 this.inputDir = inputDir; // 输出图路径 this.outputDir = outputDir; // 输入图文件名 this.inputFileName = inputFileName; // 输出图文件名 this.outputFileName = outputFileName; // 设置图片长宽 setWidthAndHeight(width, height); // 是否是等比缩放 标记 this.proportion = gp; return compress(); } /* * 获得图片大小 传入参数 String path :图片路径 */ public long getImageSize(String path) { file = new File(path); return file.length(); } public void setInputDir(String inputDir) { this.inputDir = inputDir; } public void setOutputDir(String outputDir) { this.outputDir = outputDir; } public void setInputFileName(String inputFileName) { this.inputFileName = inputFileName; } public void setOutputFileName(String outputFileName) { this.outputFileName = outputFileName; } public void setOutputWidth(int outputWidth) { this.outputWidth = outputWidth; } public void setOutputHeight(int outputHeight) { this.outputHeight = outputHeight; } public void setWidthAndHeight(int width, int height) { this.outputWidth = width; this.outputHeight = height; }
在应用中用到如下语句就出错
ImageCompress ic = new ImageCompress(); ic.compress(uploadPath,reloadPath,500, 450, true);
后来网上找了下,说是jdk问题,具体原因不知,说是在jdk安装目录“C:\Program Files (x86)\Java\jdk1.6.0_10\jre\lib\cmm”下找不到GRAY.pf文件,查看路径确实没有该文件,重新安装jdk后,赶快跑到C:\Program Files (x86)\Java\jdk1.6.0_10\jre\lib\cmm下查看是否有GRAY.pf文件,确实重装jdk后有该文件。
相关推荐
Tomcat报错,如: Can't load IA 32-bit .dll on a AMD 64-bit platform Can't load IA 64-bit .dll on a AMD 64-bit platform 都应该用x64里面的dll文件 不同的硬件平台需要与之对应的dll即可
计算机开机时出现关于 REPLRES.RLL 问题,要结合 regedit 注册表,一般是删除 和 REPLRES.RLL 有关的文件,也可以使用系统修复软件,例如 DirectX 或者其增强版
在IT行业中,尤其是在服务器端应用开发中,遇到“Can't load IA 32-bit .dll on a AMD 64-bit platform”这样的错误是常见的。这个错误通常发生在试图在一个64位的操作系统上运行32位的动态链接库(DLL)文件时。在...
最近升级到2020.1,出现cannot load a jdk class: com.sun.jdi.Field 可以直接修改 修改前 IDEA_JDK_64=C:\Program Files\Java\jdk1.8.0_144 修改后 IDEA_JDK_64=C:\Program Files\JetBrains\IntelliJ IDEA 2019.3...
标题 "Cannot load JDBC driver class 'com.microsoft.sqlserver.jdbc.SQLServerDriver'" 描述了一个常见的Java编程问题,涉及到数据库连接。在Java应用程序中,JDBC(Java Database Connectivity)驱动用于与各种...
win7 intel cpu x64 环境,部署tomcat ,提示 Can't load IA 32-bit .dll on a AMD 64-bit platform 解决方法: 替换 \bin 目录下的tcnative-1.dll 为64位的版本
"Can't load IA 32-bit .dll on a AMD 64"这个错误信息是典型的32位与64位应用程序不兼容的问题,这通常发生在尝试在64位操作系统上运行32位动态链接库(DLL)文件时。此问题涉及到Java和Tomcat服务器的配置。 首先...
at java.lang.ClassLoader.loadClass(ClassLoader.java:667) at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:119) at java.lang.ClassLoader.loadClass(ClassLoader.java:650) at ...
标题中的问题直指Delphi7在64位操作系统下的安装困境,主要表现为“Can't load package”的错误提示。这个问题通常是由于软件与操作系统兼容性问题引起的,因为Delphi7是一款32位的应用程序,而在64位系统中运行时...
主要介绍了startJVM错误Unable to load native library: libjvm.so解决方法,需要的朋友可以参考下
yum -y install docker-ce,安装高版本docke-ce,报错Problem: package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed,意思就是 containerd....
标题中的问题涉及到在使用Firefox浏览器和Selenium自动化测试时可能出现的一个特定错误:“WebDriverException: Message: 'Can't load the profile:”。这个错误通常发生在尝试加载一个已存在的Firefox配置文件,...
标题“Tomcat Can't load AMD 64-bit .dll on a IA 32”涉及到的问题是关于Apache Tomcat服务器在尝试加载AMD 64位(x64)动态链接库(.dll)文件时,在一个Intel Architecture 32-bit(IA-32,即32位系统)环境下...
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.Class.forName0(Native Method) ...
解决方案:Exceptionin thread "main" java.lang.UnsatisfiedLinkError:org.apache.hadoop.util.NativeCrc32.nativeCo
处理器负载 :{"load1":0.75,"load5":0.54,"load15":0.45} 总内存GB :1.42 剩余内存 :0.57 内存使用率 :57.79 交换页使用率 :0.07 磁盘使用率 : /:57.23%, 平均IO读KB :1735.28 平均IO写KB :211382.26...
使用方法请关注blog: https://blog.csdn.net/wenwst 导入命令: #docker load < etcd.3.2.24.tar # ocker tag 3cab8e1b9802 k8s.gcr.io/etcd:3.2.24
loadLibrary msc error:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader...]] couldn’t find “libmsc.so” 出现加载so包有问题时 在buidl.gradle(module:app)下的android{ defaultConfig {
oracle sqlt工具脚本,用来使用sql_profile绑定内存中已有的执行计划
sqoop 导入数据时候报错ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.RuntimeException: Could not load db driver class: oracle.jdbc.OracleDriver 缺少驱动包。