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