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

我已经创build了一个在Windows中运行的Java GUI应用程序。 现在我想让它在一个不支持GUI的无头Linux实例上运行。 我想将GUI转换为TUI。 有什么方法可以替代一些类,并使它在Linux中由TUI运行。 请帮忙。

你可以使用PeterMmm的建议http://www.pitman.co.za/projects/charva/index.html

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

或者,您可以运行XVFB在Linux机器上伪造GUI。 您将无法以任何方式查看GUI或与之进行交互,但对您而言可能无关紧要。

有一些Java的ncurses实现可用,像这样: http : //www.pitman.co.za/projects/charva/index.html

如果你从另外一台运行Linux的机器连接到你的用户ssh config( ~/.ssh/config ):

 Compression yes CompressionLevel 9 ForwardX11 yes ForwardX11Trusted yes 

然后,当你登录到远程Linux机器的GUI将被转发到本地屏幕。 请注意,它可能会很慢…特别是一些AWT应用程序甚至在局域网上也非常慢。

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

远程计算机必须安装xauth + sshd必须启用X11Forwarding 。 如果确定echo $DISPLAY将显示localhost:10