从无头模式启动 java 桌面应用

Starting java desktop app from headless mode

我创建了一个 java 进程,它在后台无头运行,监控 mac mac 网络。部分监控包括截取用户操作的屏幕截图以及偶尔发起聊天 window。 我假设 none 这些操作可以在无头模式下执行,如果我错了请纠正我。是否可以从能够打开聊天 window 或截取屏幕截图的无头模式进程中启动另一个进程?我如何从无头过程开始这样的过程? 提前致谢。

编辑:运行 在 mac 上,所以肯定有显示器、鼠标和键盘,我们知道有人坐在上面使用它。

编辑:它通过 machine 上的守护进程 运行 启动。

在此 link 中发现以下代码试图 运行 作为登录计算机的用户的命令:

loggedInUser=`/bin/ls -l /dev/console | /usr/bin/awk '{ print  }'`
declare -x LoginWindowPID="$(/bin/ps -axww | /usr/bin/grep loginwindo[w] | /usr/bin/awk '/console/{print ;exit}')"
/bin/launchctl bsexec "${LoginWindowPID:?}" /usr/bin/sudo -u "$loggedInUser" COMMAND GOES HERE

使用它,我们可以使用以下命令启动 java 进程(或任何无头进程),以便它可以访问 UI:

launchctl bsexec $(/bin/ps -axww | /usr/bin/grep loginwindo[w] | /usr/bin/awk '/console/{print ;exit}') COMMAND GOES HERE