【问题标题】:Get default terminal application on linux system using Java使用 Java 在 linux 系统上获取默认终端应用程序
【发布时间】:2023-03-28 20:33:02
【问题描述】:

我正在寻找一种方法来找出这些xterm, konsole, aterm, gnome-terminal 终端应用程序中的哪一个出现在 Linux 发行版上,或者是运行时 Java 程序中的默认应用程序。

需要从我的 java 程序中执行某些命令,因此需要知道要使用哪个终端,或者至少知道它是否存在并且可以使用。

默认情况下可以使用xterm,但如果有更高级的东西可以使用,会很高兴。甚至不能保证是否安装了 xterm。

【问题讨论】:

  • 链接是什么?为什么需要终端模拟器来执行 Java 应用程序的命令?
  • 我需要执行另一个 jar 工具来执行一些任务。 BTW java -jar 不会为控制台工具打开 java 控制台。
  • 对我来说仍然没有意义。您不需要终端模拟器以编程方式执行其他程序。此外,如果您正在调用其他 Java 程序,则只需使用 ClassLoader 加载它们并调用方法即可。
  • 整个故事是为了能够看到终端的输出。我必须从另一个 jar 工具中启动 jar 工具。启动子 jar 工具后父 jar 工具关闭。我有使用 xterm 的解决方案,但是,我需要知道是否有任何通用的检测终端。如果我需要或不需要,很高兴知道它是否可以用 Java 完成。
  • 启动进程或运行命令。打开JFrame。填充输出。您正在尝试做的事情听起来像是 hack。

标签: java linux terminal


【解决方案1】:

如果您想要完全的可移植性和“本机终端仿真器”,您将不得不编写一些代码来自己选择“正确的”终端仿真器。有两个命令可以自行选择:

  • 在基于 Debian 的 Distro 上,您可以使用 x-terminal-emulator -e <cmd>,但这不适用于例如Centos。
  • FreeDesktop 将xdg-terminal (code) 作为xdg-utils 包的一部分,但是该脚本似乎根本没有分发。

由于这些都不能保证存在,您仍然需要测试可用性并使用 xterm 等作为后备。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    相关资源
    最近更新 更多