img.jsp文件中包含的包如下:
import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"
在windows系统下运行正常,将代码转移到linux环境下后提示下列错误,不知是什么原因,请高手指点!
java.lang.NoClassDefFoundError
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:141)
java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62)
java.awt.image.BufferedImage.createGraphics(BufferedImage.java:1041)
java.awt.image.BufferedImage.getGraphics(BufferedImage.java:1031)
org.apache.jsp.admin.image_jsp._jspService(image_jsp.java:73)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
回答:
在Java运行时加上参数:-Djava.awt.headless=true
确切的说是因为再linux你没有启动Xserver,所以如果不设置以上参数就会出问题。你应该修改你的servlet container的启动脚本,在启动选项中加入上边的参数。
JDK1.4以上在LINUX下加参数:-Djava.awt.headless=true
具体的说就是在tomcat的/bin/catalina.sh加上JAVA_OPTS=-Djava.awt.headless=true
早期的JDK版本就要在LINUX上装个什么包。