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

时间:2012-07-14 06:59:19

标签: java linux user-interface curses tui

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

4 个答案:

答案 0 :(得分:4)

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

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

或者,您可以运行XVFB伪造Linux机器上的GUI。您将无法以任何方式查看GUI或与其进行交互,但这对您来说无关紧要。

答案 1 :(得分:1)

有一些针对Java的ncurses实现可用,例如:http://www.pitman.co.za/projects/charva/index.html

答案 2 :(得分:0)

如果您正在从另一台运行Linux的X机器上连接下面的用户ssh config(~/.ssh/config):

Compression yes
CompressionLevel 9
ForwardX11 yes
ForwardX11Trusted yes

然后,当您登录到远程Linux机器时,您的GUI将转发到本地屏幕。请注意,它可能很慢......特别是一些AWT应用程序即使在LAN上也非常慢。

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

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

答案 3 :(得分:0)

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

URL.startswith(("http://", "https://"))

然后:

sudo apt-get install xvfb

xvfb :1 -screen 0 800x600x8 &
export DISPLAY=":1"
java application_name.jar

->参见:https://askubuntu.com/questions/50599/how-do-you-run-a-gui-application-without-gui-gui-application-as-daemon-on-headl