java - 如何在没有桌面环境的情况下从 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"
解决方案
这应该是:
startx /usr/bin/java -jar app.jar —-
请参阅https://askubuntu.com/questions/697978/how-to-pass-a-program-and-its-arguments-to-start或 startx 手册页。
编辑:根据@chief654 的回复更新。
推荐阅读
- docker - docker容器中TCP服务器中的远程IP地址无效
- haskell - 在哪里定义次要功能
- rest - 使用 IEX API 获取历史股票信息
- exception - 你能帮我解决这个找不到主要功能的错误吗?我只是Java的初学者,我被困在这个
- docker - Identityserver 4 in docker compose 根据验证程序远程证书无效
- linked-data - solid/react-components: 使用LDflex() 获取地址
- amazon-web-services - 如何使用 API Gateway (HTTP) 来处理复杂的 SaaS URL 请求?
- python - 如何在 Visual Studio 代码中从 github 运行和测试 django 克隆项目?
- python - 检查文本文件中的行是否在特定日期和时间范围内
- python - 为什么这个父类 setter 调用使用 type(self) 而不是 self?