0

我已经编写了读取键盘输入并执行其他一些工作的 Java 应用程序。如何在后台运行该应用程序并使其在 Linux 后台读取键盘输入?

4

3 回答 3

0

进程只能在其终端/UI 窗口/等情况下读取键盘输入。有重点。例如,如果您在服务器上具有适当的访问权限,您可以做的是让 Java 应用程序从套接字读取并从键盘将数据发送到该套接字。

例如

在 tty 上:

$ socket -sl 11555

在另一个 tty 上:

$ nc 0 11555 | yourjavabinary

现在,无论您在第一个 tty 中键入什么内容,您的 Java 应用程序都会将其作为输入接收。

于 2013-09-04T12:37:35.233 回答
0

如果您的 java 应用程序失焦,我认为不可能读取键盘事件。您可以使用一些 JNI 组件并从您的 java.lang.java 中调用它。

于 2013-09-04T12:37:54.357 回答
0

你的意思是shell中的背景?还是窗口管理器的背景?

对于 shell,您可以尝试使用 script(1) 程序。它启动一个新的 shell 并将所有输入和输出捕获到一个文件中。不过,您必须弄清楚哪些行是输入。

http://man7.org/linux/man-pages/man1/script.1.html

于 2013-09-04T15:52:58.120 回答