首页 > 解决方案 > 如何在没有桌面环境的情况下从 Linux shell 运行 Java Swing 应用程序?

问题描述

我有一个用于测试的示例 Java 应用程序。它使用 Java Swing 库。我尝试xserver在 Linux shell 中运行它,所以我没有使用桌面环境。

通常,您可以运行例如 Firefox 而不会出现这样的问题:

startx /usr/bin/firefox    

我尝试无头导出DISPLAY和运行应用程序,但它只打印了以下行中的第一行。

{
    System.out.println("This works");
    JOptionPane.showMessageDialog(null, "This should show up");
}

如果我从命令行运行java -jar app.jar,我会收到以下错误消息:

Exception in thread "main" java.awt.HeadlessException: No X11 DISPLAY variable was set, but this program performed an operation which requires it.

startx java -jar app.jar输出为:

Bad command line option "-jar"

标签: javalinuxswingxserver

解决方案


这应该是:

startx /usr/bin/java -jar app.jar —-

请参阅https://askubuntu.com/questions/697978/how-to-pass-a-program-and-its-arguments-to-start或 startx 手册页。

编辑:根据@chief654 的回复更新。


推荐阅读