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

2024-02-27

我正在使用一些代码,使用 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(使用前将#替换为@)

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

  • 不支持的字段:将瞬间格式化为日期 ISO 时的年份[重复]

    这个问题在这里已经有答案了 我正在尝试将 Instant 格式化为 ldap 日期 ISO8601 但在 f format Instant now 处失败 String input 20161012235959 0Z DateTimeFor
  • 获取Android库中的上下文

    我正在编写一个 Android 应用程序 它的一些功能封装在内部库中 但是 要使此功能发挥作用 库需要一个应用程序上下文的实例 为图书馆提供这种上下文的最佳方式是什么 我看到了一些选择 但没有一个有吸引力 Have my library c
  • Selenium 和 TestNG 同时使用“dependsOn”和“priority =”问题

    我正在努力在 GUI 自动化测试中实现更好的工作流程控制 我首先从dependsOn开始 但很快发现缺点是如果一个测试失败 则套件的整个其余部分都不会运行 所以我改用 priority 但看到了意外的行为 一个例子 Test priorit
  • Java Junit 测试 HTTP POST 请求

    我需要测试以下方法而不改变方法本身 该方法向服务器发出 POST 方法 但我需要制作一个独立于服务器的测试用例 在将其重定向到本地文件之前 我测试了类似的方法 但为此我将协议指定为文件 主机名指定为 localhost 端口指定为 1 我的
  • 使用 kryo 注册课程的策略

    我最近发现了 kryonet 库 它非常棒并且非常适合我的需求 然而 我遇到的一个问题是制定一种好的策略来注册所有可以转移的类 我知道我可以在每个对象中编写一个静态方法 该方法将返回它使用的所有类的列表 但我真的不想这样做 为了我自己的时间
  • 如何避免Eclipse在将类名放在注释中时导入类,以便checkstyle稍后不会抱怨?

    有时我将类名放在方法或类的注释中只是为了引用 但是 Eclipse 会自动执行导入并在文件中留下导入语句 这会导致稍后出现 未使用的导入 检查样式错误 当我在注释中输入类名时 是否可以更改一些配置以避免 Eclipse 自动导入 人们不同意
  • 如何自动转换十六进制代码以将其用作 Java 中的 byte[]?

    我这里有很多十六进制代码 我想将它们放入 Java 中 而不需要向每个实体附加 0x 喜欢 0102FFAB 和我必须执行以下操作 byte test 0x01 0x02 0xFF 0xAB 我有很多很长的十六进制代码 有什么办法可以自动做
  • for循环中更新JLabel的问题

    我的程序的想法是从之前在其他 JFrame 中保存的列表中选择一个名称 我想在标签中一个接一个地打印所有名称 它们之间有很小的延迟 然后停在其中一个名称上 问题是lbl setText String 如果有多个则不起作用setText co
  • 膨胀类 android.support.design.widget.NavigationView 时出错

    我按照 NavigationView 的教程进行操作 但无法解决此错误消息 Error inflating class android support design widget NavigationView 教程链接 https www
  • 在Java中如何将字节数组转换为十六进制?

    我有一个字节数组 我希望该数组的每个字节字符串转换为其相应的十六进制值 Java中有没有将字节数组转换为十六进制的函数 byte bytes 1 0 1 2 3 StringBuilder sb new StringBuilder for
  • ActiveMQ JNDI 查找问题

    尝试使用 JNDI 运行以下 ActiveMQ http activemq apache org jndi support html http ActiveMQ 20JNDI 并且我的 jboss server node lib 文件夹中有
  • 接口是否像对象一样对待?

    为什么下面的代码可以工作 interface I class A implements I public String toString return in a class B extends A public String toStrin
  • JPA Web 应用程序管理策略

    我们目前正在开发一个 J2EE Web 应用程序 使用 JPA 作为我们的数据访问层 我们目前正在研究几种不同的策略来在我们的应用程序中利用缓存 Create an EntityManager per request 在请求范围内获取缓存
  • Java 8 方法签名不一致

    Java 8 为我们提供了具有很长签名的新方法 如下所示 static
  • Spring - 如何在不匹配列名的情况下使用 BeanPropertyRowMapper

    我正在开发一个应用程序 该应用程序已使用行映射器从纯 JDBC 转换为 Spring 模板 我遇到的问题是数据库中的列与属性名称不匹配 这阻止我使用BeanPropertyRowMapper容易地 我看到一些关于在查询中使用别名的帖子 这会
  • 使用 Java 8 Spring 4 + MyBatis 集成问题

    使用 Java 8 1 8 0 60 Spring 4 2 1 和 MyBatis 3 3 0 时遇到以下异常 Sep 29 2015 11 02 58 AM org springframework context annotation A
  • 为什么不能在 if 语句中声明变量?

    以下 Java 代码无法编译 int a 0 if a 1 int b 0 if a 1 b 1 为什么 不能有任何代码路径导致程序将 1 分配给b无需先声明 我突然想到b的变量范围可能仅限于第一个if声明 但后来我不明白为什么 如果我实在
  • Firebase:用户注册后如何进行电话号码验证?

    所以我知道我可以使用电子邮件验证或电话号码验证 但我想做的是在用户注册或登录后进行电话号码验证 如何连接这两种身份验证方法 最后 Firebase中是否有一个函数可以检查用户是否通过电话号码验证 谢谢 即使用户已通过身份验证 您仍然可以使用
  • com.sun.xml.ws.message.saaj.SAAJHeader 无法转换为 com.sun.xml.ws.security.opt.impl.outgoing.SecurityHeader

    我正在尝试访问第三方 Web 服务 该服务要求我创建一个传递时间信息 用户名和密码的安全标头 我在网上搜索了可行的示例 并尝试了多种方法 我正在尝试使用 Java 6 中内置的内容来做到这一点 我不确定我做错了什么 从 WSDL 生成 We
  • Unicode(希腊语)字符存储在数据库中,例如“??????”

    数据库中的希腊字符就像问号 我找不到解决办法 我使用 Java Swing 开发了一个应用程序 但是当我在 MySQL 中插入希腊字母时 就像问号一样 我将数据库排序规则更改为 utf8 并将列也更改为 utf8 我的项目编码设置为UTF

随机推荐

  • 使用 SDK 在 Google Cloud 中设置环境变量时出错

    我正在尝试为 Google Cloud 上的 Django 应用程序设置环境变量 我在SDK中输入了以下内容 gcloud functions deploy env vars runtime python37 set env vars SU
  • 由于 jQuery Mobile,IE9 窗口失去焦点

    在我们的产品中 我们在 ASP NET 网站中使用 jQuery Mobile 的最新开发版本 每次我们进行 ASP NET 回发时 浏览器窗口都会转到屏幕的后面 例子 最大化任何窗口 示例 视觉 Studio Word Windows 资
  • 凸轮卡扫描仪自动填充未发生

    我的输入字段是这样创建的
  • Javascript 在原型中使用值类型设置对象属性? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 查询 Mongo 中嵌套列表是否存在

    我在 Mongo 中有一个文档 其结构如下 id ObjectId 4eea7237d0ba3a04f20008fb code b2677c2809c844cc9d7e3e4ff8d95b46 city id 4 datetime ISOD
  • 使用 GitHub GUI 提交和同步,一切都消失了

    因此 在 GitHubGUI 中 像往常一样 我进行了更改 然后单击Commit Sync短暂地弹出 合并冲突 对话框 然后一切都消失了 我将最新的更改与远程存储库同步 我所做的一切都消失了 以前在我不断点击后也发生过这种情况commit
  • 如何在 iOS 中使用位图/RGB 数据制作图像动画

    我正在 iPhone 上编写游戏程序 并且有一个想要制作动画的图像 例如位图中行走的人 位图随时间变化 如何有效地将位图添加到屏幕 UIView 加载图像序列的最有效方法是使用 PVR 格式图像并将其作为 OpenGL 纹理加载 PVR 图
  • 特定时间的深度睡眠

    我需要在特定时间激活外设 然后休眠一段时间 然后再次停用外设 我可以用一个简单的方法来做到这一点sleep但这会让我的 ESP32 保持唤醒状态并消耗电池 有没有办法在规定的时间内进入深度睡眠 然后再次醒来 理想情况下 我会简单地安排在一定
  • 为androidTest添加布局资源

    我想将布局 xml 文件添加到我的androidTest仅用于测试的文件夹 I added res layout文件夹到androidTest并尝试向其中添加布局文件 但它给出了错误URI is not registered for xml
  • 无法在 Android 应用程序运行时加载库

    我正在开发 android 应用程序 其中我使用 JNI 作为本机 c 代码 我在 android 2 0 版本和 ndkr3 上构建这个应用程序 它运行良好 现在 当我更改android sdk版本1 5和api版本3时 我遇到了无法打开
  • JavaScript 中获取两个日期之间的差异? [复制]

    这个问题在这里已经有答案了 如何获得全天中 2 个日期之间的差异 我不需要一天的任何分数 var date1 new Date 7 11 2010 var date2 new Date 12 12 2010 var diffDays dat
  • 如何使用 Ember CLI 进行生产就绪构建?

    我一直在 Ember 中构建一个 Web 应用程序 并准备将其放在服务器上以供公众使用 我只想创建 dist 文件夹 然后我将通过 FTP 手动将其上传到服务器 我如何在 Ember 中为此构建一个 dist 我不知道如何打开缩小并从构建中
  • Express 和 nginx net::ERR_CONTENT_LENGTH_MISMATCH

    我正在开发一个 Express 驱动的网站 它通过 nginx 代理 有时在浏览器中加载页面时 我会得到以下信息 GET http myapp local css bootstrap css net ERR CONTENT LENGTH M
  • 如何将参数传递给 p:dataTable 中的 valueChangeListener?

    我正在打电话valueChangeListener on a
  • 根据另一个单元格中的值更改单元格中的值

    搜索了这个但找不到方法 我希望能够将一个单元格中的值转换为不同单元格中的另一个值 如下所示 当列中的单元格A包含Y在列中设置相同数量的单元格B to Male或者当列中的单元格A包含N在列中设置相同数量的单元格B价值Female 例如 A2
  • C相当于fstream的peek

    我知道在 C 中 您可以使用以下命令查看下一个字符 in peek 当尝试 查看 C 中文件的下一个字符时 我该如何解决这个问题 fgetc http opengroup org onlinepubs 007908799 xsh fgetc
  • 使用 Glumpy 将 NumPy 数组显示为持续更新的图像

    我有一个使用 NumPy 和 SciPy 在 Python 中运行的模拟模型 它会生成一个 2D NumPy 数组作为每次迭代的输出 我一直使用 matplotlib 和 imshow 函数将此输出显示为图像 然而 我发现了 Glumpy
  • 将对象列表分组为尽可能少的子列表,但不超过最大总和

    我正在尝试编写一种方法 将对象分组到最少量的子列表中 而无需混合类型 对象上的 int 字段 或其值的总和超过定义的最大值 它应该看起来像这样 List
  • Maven:如何安装 mvnsh?

    我怀疑我的处理方式完全错误 我听说过mvnsh http shell sonatype org 并想尝试一下 以减少构建时的延迟 但我完全不知道如何做到这一点 我仍在学习 Maven 并在两者之间进行错误的比较mvn和类似的工具gem ca
  • 将使用 AWT 和 Swing 绘制电影的 Java 应用程序移植到服务器端

    我正在使用一些代码 使用 AWT 和 Swing 功能将动画输出写入桌面 它使用 2D 图形进行绘制并以字体呈现文本 此代码可以使用 Java Media Framework 将动画保存到电影文件 我想将此代码移植到纯服务器端环境 以便使用