如何在不支持GUI的无头Linux上运行Java GUI应用程序?
我创建了一个在Windows中运行的JavaGUI应用程序。现在我想让它在不支持GUI的无头Linux实例上运行。我想将GUI转换为TUI。有没有一种方法可以替代一些类,让它通过TUI在Linux中运行。请帮忙。你可以参考彼得·姆姆的建议 或者,您可以在本地计算机上运行GUI,方法是运行X服务器,然后使用如何在不支持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或以任何方式与之交
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前进
。如果OKecho$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