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

问题描述 投票:5回答:4

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

java linux user-interface curses tui
4个回答
4
投票

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

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

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


1
投票

Java有一些ncurses实现,如下所示:http://www.pitman.co.za/projects/charva/index.html


0
投票

如果你从另一个正在运行Linux机器的X连接到你的用户ssh配置(~/.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。如果OK echo $DISPLAY将显示localhost:10


0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.