如何在不支持GUI的无头Linux上运行Java GUI应用程序?

如何在不支持GUI的无头Linux上运行Java GUI应用程序?,java,linux,user-interface,curses,tui,Java,Linux,User Interface,Curses,Tui,我创建了一个在Windows中运行的JavaGUI应用程序。现在我想让它在不支持GUI的无头Linux实例上运行。我想将GUI转换为TUI。有没有一种方法可以替代一些类,让它通过TUI在Linux中运行。请帮忙。你可以参考彼得·姆姆的建议 或者,您可以在本地计算机上运行GUI,方法是运行X服务器,然后使用ssh-X连接到Linux机器。这将在本地计算机上显示GUI,但该程序实际上是在linux机器上运行的 或者,您可以运行XVFB在Linux机器上伪造GUI。您将无法看到GUI或以任何方式与之交

我创建了一个在Windows中运行的JavaGUI应用程序。现在我想让它在不支持GUI的无头Linux实例上运行。我想将GUI转换为TUI。有没有一种方法可以替代一些类,让它通过TUI在Linux中运行。请帮忙。

你可以参考彼得·姆姆的建议

或者,您可以在本地计算机上运行GUI,方法是运行X服务器,然后使用
ssh-X
连接到Linux机器。这将在本地计算机上显示GUI,但该程序实际上是在linux机器上运行的


或者,您可以运行XVFB在Linux机器上伪造GUI。您将无法看到GUI或以任何方式与之交互,但这可能对您并不重要。

如果您是从另一台运行Linux的X计算机连接,请将以下内容添加到您的用户ssh配置(
~/.ssh/config
):

然后,当您登录到远程Linux机器时,您的GUI将被转发到本地屏幕。请注意,它可能会很慢。。。值得注意的是,有些AWT应用程序即使在局域网上也非常慢

如果在Windows上,则安装intall及其Xserver组件。此外,
OpenSSH
也会有所帮助。当您要通过CygWin的
ssh
进行连接时,请使用与上面相同的配置。当然,在连接到远程计算机之前运行Xserver。您还可以使用Putty连接到远程,但不要忘记在会话配置中启用X11转发和压缩


远程计算机必须安装
xauth
并启用
sshd
必须启用
x11前进
。如果OK
echo$DISPLAY
将显示
localhost:10

有一些针对Java的ncurses实现,如下所示:

为了传播一个简单有效的解决方案,我复制SA“Ask Ubuntu”提供的答案:

然后:


请考虑把这个回答。
Compression yes
CompressionLevel 9
ForwardX11 yes
ForwardX11Trusted yes
sudo apt-get install xvfb
xvfb :1 -screen 0 800x600x8 &
export DISPLAY=":1"
java application_name.jar
xvfb-run -a -e /tmp/some/log/file.log java -jar /home/user/somejava.jar