在linux环境下,jdk1.4.2_02
代码如下
public static boolean zoomImage(String infile, String outfile, int x, int y) {
boolean ret = false;
// String imgPath = "";
//System.out.println("infile--->" + infile);
//System.out.println("outfile-->" + outfile);
File _file = new File(infile);
String cmdstr = null;
try {
if (_file.exists()) {
Image src = ImageIO.read(_file);
int imgX = src.getWidth(null);
int imgY = src.getHeight(null);
int w = x;
int h = y;
if (imgX * y > imgY * x) {
h = (imgY * x) / imgX;
} else {
w = (imgX * y) / imgY;
}
System.out.println(imgX + " x " + imgY + "-->" + w + " x " + h);
if (imgX >= x || imgY >= y) {
cmdstr = "/usr/bin/convert -sample " + w + "x" + h + " "
+ infile + " " + outfile;
//System.out.println("cmdstr========>"+cmdstr);
Runtime.getRuntime().exec(cmdstr);
ret = true;
}
}
} catch (IOException e) {
e.printStackTrace();
}
// return cmdstr;
return ret;
}程序在Image src = ImageIO.read(_file);这个地方抛异常,不能运行。异常信息如下:Exception in thread "main" java.lang.ExceptionInInitializerError
   at java.lang.Class.initializeClass() (/usr/lib/libgcj.so.5.0.0)
   at _Jv_ResolvePoolEntry(java.lang.Class, int) (/usr/lib/libgcj.so.5.0.0)
   at com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi.JPEGImageReaderSpi() (Unknown Source)
   at javax.imageio.spi.IIORegistry.registerStandardSpis() (Unknown Source)
   at javax.imageio.spi.IIORegistry.IIORegistry() (Unknown Source)
   at javax.imageio.spi.IIORegistry.getDefaultInstance() (Unknown Source)
   at javax.imageio.ImageIO.<clinit>() (Unknown Source)
   at java.lang.Class.initializeClass() (/usr/lib/libgcj.so.5.0.0)
   at _Jv_ResolvePoolEntry(java.lang.Class, int) (/usr/lib/libgcj.so.5.0.0)
   at ImageT.zoomImage(java.lang.String, java.lang.String, int, int) (Unknown Source)
   at GetSinaRss.tSQL(java.util.HashMap, java.lang.String[], java.lang.String[]) (Unknown Source)
   at GetSinaRss.dataToDB(java.util.ArrayList) (Unknown Source)
   at GetSinaRss.main(java.lang.String[]) (Unknown Source)
Caused by: java.lang.UnsupportedOperationException: profile not implemented
   at java.awt.color.ICC_Profile.getNumComponents() (/usr/lib/libgcj.so.5.0.0)
   at java.awt.color.ICC_ColorSpace.ICC_ColorSpace(java.awt.color.ICC_Profile) (/usr/lib/libgcj.so.5.0.0)
   at java.awt.color.ColorSpace.getInstance(int) (/usr/lib/libgcj.so.5.0.0)
   at com.sun.imageio.plugins.jpeg.JPEG.<clinit>() (Unknown Source)
   at java.lang.Class.initializeClass() (/usr/lib/libgcj.so.5.0.0)
   ...12 more这个程序是直接通过root登录后用java执行的。在同样的环境下,在jsp程序中,resin2.0.5的环境下没有问题。环境变量设置如下:
CLASSPATH=.:/usr/local/j2sdk1.4.2_02/lib:/usr/local/j2sdk1.4.2_02/jre/lib:/usr/local/resin/lib:/usr/local/resin/classes:/chroot/www/WEB-INF/classes/:/usr/local/resin/lib/wap0.jar:/usr/local/resin/lib/j2ee.jar:/usr/local/j2sdk1.4.2_02/lib/tools.jar:/usr/local/resin/lib/jsdk23.jar:/usr/local/resin/lib/utils.jar:/usr/local/resin/lib/classes12.zip:./:./WEB-INF/classes/:/usr/local/resin/lib/jmagick.jar:/usr/local/resin/lib/gif.jar:/usr/local/resin/lib/image.jar:/usr/local/j2sdk1.4.2_02/jre/lib/rt.jar:/usr/local/resin/lib/utils.jar:/usr/local/j2sdk1.4.2_02/jre/lib/jsse.jar:/usr/local/j2sdk1.4.2_02/jre/lib/sunrsasign.jar:/usr/local/j2sdk1.4.2_02/jre/lib/jce.jar:/usr/local/j2sdk1.4.2_02/jre/lib/plugin.jar:/usr/local/j2sdk1.4.2_02/jre/lib/charsets.jar谢谢,请高手指点!