移植使用AWT和Swing的Java应用程序将电影绘制到服务器端

我正在使用一些代码,使用AWT和Swingfunction将动画输出写入桌面。 它使用2D图形绘制并以字体呈现文本。

此代码可以使用Java Media Framework将动画保存到电影文件。

我想将此代码移植到纯服务器端环境,以便使用Web UI。 绘图代码可以在servlet容器内运行,也可以作为命令行程序在外部运行。 (或者我可以选择不使用servlet容器,而是使用从命令行运行Java Web服务器的新方法。)

我可以在不启动服务器上的X Window系统的情况下使用AWT和Swing绘图function吗?

Java SE平台中的使用无头模式一文概述了对此类应用程序的限制。

作为一个具体的例子, JFreeChart是一个广泛用于桌面和servlet上下文的图形程序。 对于后者,可以使用几个ChartUtilities任何一个来在无头环境中流式传输呈现的内容。

或者,考虑使用Java Web Start来部署现有的Swing应用程序,例如此处看到的JFreeChart演示。

附录:这个Oracle论坛post暗示Java Media Framework确实可以抛出HeadlessException ; 建议的解决方法是指定特定的系统属性值:

 -Dawt.toolkit=sun.awt.HeadlessToolkit 

headless模式不可用时,这个JFreeChart论坛post建议Xvfbvnc作为替代品。