java - 如何在没有桌面环境的情况下从 Linux shell 运行 Java Swing 应用程序?

标签 java linux swing xserver

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

通常,您可以运行例如Firefox 没有这样的问题:

startx /usr/bin/firefox    

我尝试导出 DISPLAY 并 headless 运行应用程序,但它只打印了以下第一行。

{
    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"

最佳答案

这应该是:

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

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

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

关于java - 如何在没有桌面环境的情况下从 Linux shell 运行 Java Swing 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57534139/

相关文章:

java - JScrollPane 包含更新图像的尺寸错误

Java:编译时解析和 "most specific method"

c - 多管道的实现

java - 命令提示符无法使用 Runtime.getRuntime().exec 打开

c++ - 检测C++ Qt组合中的内存泄漏?

c++ - Windows/Linux下直接访问内存设备

java - 运动背景图片

java - 如何使用命令行生成带有盐的 sha512 哈希?

java - 从android studio中的mysql数据库检索图像

java - 如何使用 jUnit 对 Servlet 过滤器进行单元测试?