当我使用 linux 守护进程启动 java 时出现 Java headless 异常

标签 java linux swing exception daemon

我有一个 linux 守护进程,它为每个登录系统的用户启动一个 java 实例。

我使用以下命令为每个用户启动 java 应用程序:

cd /home/user/java_path/ && sudo -u user /opt/jdk1.7.0_17/java -jar software.jar &

java 应用程序监视一个文件夹并在创建新文档时打开一个框架进行身份验证。每个 java 应用程序只读取用户文件(按名称模式)。当试图打开一个框架时,我得到了这个错误(在日志中):

No X11 DISPLAY variable was set, but this program performed an operation which requires it.

java.awt.HeadlessException: ...

当我在常规命令行(终端)中执行 java 应用程序时,效果很好。

我还看到了导出变量,使用 export -p 命令,显示变量对于所有登录的用户都是正常的。

最佳答案

某些 java 类依赖于显示设备,如果您没有(在没有 X 服务器的情况下运行),它们将失败并出现您收到的错误。 使用以下参数运行 java:

-Djava.awt.headless=true

更多信息在这里: http://www.oracle.com/technetwork/articles/javase/headless-136834.html

关于当我使用 linux 守护进程启动 java 时出现 Java headless 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16569364/

相关文章:

c - 在 C 中设置线程优先级

java JMenuItem NullpointerException(覆盖 swing 类时初始化错误)

java - 在 Eclipse 中按 Ctrl+F6 创建弹出菜单的最佳方法是什么?

linux - 在 debian 的同一接口(interface)上具有不同网络路由的多个 ip 地址

linux - Grep 内部从 ls 和 head 返回的文件

java - JTextField 不工作

java - 如何在特定浏览器(如 Android 中的 Chrome 或 Firefox)的 Web-View 中加载应用程序

java - 用于 Java 日志的 Unix grep

java - Cucumber-JVM 步骤定义

java - 我应该如何将这些类分离到包/库中?