在linux X11中使用java.awt库的问题

时间:2011-03-23 08:51:27

标签: linux awt x11 headless

我正在尝试通过组合使用Xuggle在线提供的一组图像来创建视频。我使用JSP和Java将其实现为服务。我正在使用tomcat服务器。当我在我在Windows中运行的本地服务器中部署它时,它工作正常。但当我将它部署到Linux服务器时,我得到以下错误。

org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:500)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:410)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

我想这是在没有显示器的环境中发生的无头问题。 有人能告诉我如何解决这个问题吗? 我在网上发现PJA toolkit可以解决这个问题。但我如何在linux中使用它?如果有人遵循这种方法,请你给我一步一步说明如何在linux中使用它。

1 个答案:

答案 0 :(得分:1)

我设法解决了这个问题。如果在UNIX计算机(也称为无头环境)上没有可用的X11显示器,或者当Windows上的GDI资源不足时,则无法使用JDK版本下的java.awt.Graphics方法计算屏幕外图像。 1.4,即使您的程序不需要显示这些图像。通常,这种情况发生在servlet返回动态生成的图像,如馅饼,图表或网络计数器。 如果你的JDK版本是< 1.4升级它,因为在JDK 1.4以后这个问题就解决了。然后你需要启用无头模式。这是如何做到的: 如果您使用的是Linux,请输入 export CATALINA_OPTS =“ - DJava.awt.headless = true 到/ etc / profile文件。

希望这会帮助遇到同样问题的其他人。