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

mpa*_*raz 6 java swing awt

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

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

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

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

tra*_*god 11

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

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

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

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

-Dawt.toolkit=sun.awt.HeadlessToolkit
Run Code Online (Sandbox Code Playgroud)

JFreeChart论坛模式不可用时,此论坛主题建议Xvfbvnc作为替代方案headless.