我正在使用一些代码,使用 AWT 和 Swing 功能将动画输出写入桌面。它使用 2D 图形进行绘制并以字体呈现文本。
此代码可以使用 Java Media Framework 将动画保存到电影文件。
我想将此代码移植到纯服务器端环境,以便使用 Web UI。绘图代码可以在 servlet 容器内部运行,也可以作为命令行程序在外部运行。 (或者我可以选择不使用 servlet 容器,而是使用从命令行运行 Java Web 服务器的较新方法。)
我可以在不启动服务器上的 X Window 系统的情况下使用 AWT 和 Swing 绘图功能吗?
文章在 Java SE 平台中使用 Headless 模式 http://www.oracle.com/technetwork/articles/javase/headless-136834.html概述了此类应用程序的限制。
作为一个具体的例子JFreeChart https://stackoverflow.com/tags/jfreechart/info是一种广泛用于桌面和 servlet 环境中的图形程序。对于后者,任意几个ChartUtils https://www.jfree.org/jfreechart/javadoc/org/jfree/chart/ChartUtils.html可用于在无头环境中流式传输渲染的内容。
或者,尽管已弃用,但请考虑Java网络启动 https://stackoverflow.com/tags/java-web-start/info部署现有的 Swing 应用程序,例如JFreeChart
已看过演示here http://www.jfree.org/jfreechart/samples.html.
附录:Oracle 论坛thread https://forums.oracle.com/forums/thread.jspa?threadID=1280600表明 Java 媒体框架确实可以抛出HeadlessException
;建议的解决方法是指定特定的系统属性值:
-Dawt.toolkit=sun.awt.HeadlessToolkit
This JFreeChart
forum thread https://web.archive.org/web/20160323222859/http://www.jfree.org/phpBB2/viewtopic.php?t=1012建议Xvfb http://en.wikipedia.org/wiki/Xvfb or vnc http://en.wikipedia.org/wiki/Virtual_Network_Computing作为替代方案时headless
模式不可用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)