设置 -Djava.awt.headless=true 后的 Java Headless 异常

标签 java linux tomcat jfreechart headless

我正在使用:

Linux Debian 6, Java 1.6.29 和 Tomcat 6

我看过很多关于它的帖子,解释说 java.awt 需要 X11 库等,但它们并没有解决问题。

我在我的盒子里设置了 -Djava.awt.headless=true 并且我解决了 headless (headless)环境的第一个问题,现在我得到:

java.awt.HeadlessException
java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)
java.awt.Window.(Window.java:432)
java.awt.Frame.(Frame.java:403)
javax.swing.JFrame.(JFrame.java:202)
org.jfree.ui.ApplicationFrame.(ApplicationFrame.java:65)
...

我知道通过这样做我只是告诉 java 没有监视器(实际上运行一个独立的 java 程序来检查环境是否是 headless (headless)的它确实返回 true)。那么它与设置DISPLAY env变量之类的Linux环境有关吗?

非常感谢你的帮助,

谢谢。

最佳答案

正如您在 http://java.sun.com/developer/technicalArticles/J2SE/Desktop/headless/ 中所读到的那样, 如果不支持显示设备、键盘或鼠标,许多组件都会受到影响。与 Canvas、Panel 和 Image 组件相关的方法不需要抛出 HeadlessException,因为这些组件可以被赋予空对等体并被视为轻量级组件。

所以 JFrame 是抛出 HeadlessException 的组件。

如果您想在 headless (headless)环境中使用 jfreechart 生成图表,此链接可能对您有所帮助:http://javaevangelist.blogspot.com.es/2010/11/creating-charts-on-headless-systems.html .

关于设置 -Djava.awt.headless=true 后的 Java Headless 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10170609/

相关文章:

java - 访问多个 JpaRepositories 之前和之后运行函数

java - 使用父键对象化过滤器实体

java - 如何使用 JDBCRealm 获取登录用户的用户名?

linux - 如何在 shell 脚本中检查这种情况?

java - android应用程序通过mysql数据库连接到本地服务器?

java - Android 应用服务器的行业标准是什么?

java - 如何将 javaFX 14 应用程序导出为 IntelliJ 中的可执行文件?

c++ - boost::process 异步 IO 示例不起作用?

linux - 软件包 mesa-filesystem 向后兼容性

java - 在 context.xml 中设置上下文路径时,除了第一页之外的所有页面都出现 404 错误