【问题标题】:All my java applications now throw a java.awt.headlessexception我所有的 java 应用程序现在都会抛出 java.awt.headlessexception
【发布时间】:2017-12-30 03:20:05
【问题描述】:

所以几天前我有几个使用 Swing 库的工作 Java 应用程序,尤其是 JFrame。他们都工作得很好,现在他们都抛出了这个异常:

java.awt.headlessexception

我不知道发生了什么变化,也许我的 Java 版本被意外更新了。

感谢您提供的任何帮助。

编辑:

这是给我异常的一小段代码。

import javax.swing.JFrame;
public class test {

  public static JFrame frame;

  public static void main(String[] args) {
    frame = new JFrame("test");
    frame.setVisible(true);
    frame.setLocationRelativeTo(null);
  }
}

【问题讨论】:

  • 抛出这个异常的一个小例子会有很大帮助。
  • 当在不支持键盘、显示器或鼠标的环境中调用依赖于键盘、显示器或鼠标的代码时,将引发此异常。你是如何执行你的应用程序的?
  • 我会看看我是否可以写一些非常快的小东西来做到这一点。所有示例都是代码的大部分。我在笔记本电脑上将它作为 Java 应用程序执行。它曾经工作过。
  • 什么操作系统?您是从命令行执行还是从图形环境的上下文中执行?
  • 您是否可能安装了无头 JRE? (检查您的 Java 安装,如果有疑问,请尝试重新安装。)

标签: java swing


【解决方案1】:

HeadlessException

在不支持键盘、显示器或鼠标的环境中调用依赖于键盘、显示器或鼠标的代码时引发。

设置无头模式使用

java -Djava.awt.headless=true

Using Headless Mode in the Java SE Platform

【讨论】:

  • 您也可以使用 -Djava.awt.headless=false 避免 HeadlessException :) 谢谢!
【解决方案2】:

多个 Linux 发行版针对 JRE 和 JRE GUI 的基础具有单独的包。

例如在 RHEL7/CentOS 7 上,如果你只安装了这个包:

  • java-1.8.0-openjdk-headless

你还需要安装这个包:

  • java-1.8.0-openjdk

【讨论】:

    【解决方案3】:

    您可以尝试更改您当前使用的 JRE。转到项目的“运行配置”并将 JRE 从项目的默认值更改为 Java 平台“标准”版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多