6

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

4

4 回答 4

4

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

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

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

于 2012-07-14T08:53:20.710 回答
2

为了传播一个简单有效的解决方案,我复制了@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

于 2019-03-06T15:51:10.333 回答
1

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

于 2012-07-16T08:13:08.620 回答
0

如果您从另一台运行 X 的 Linux 机器连接到您的用户 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

于 2012-07-14T21:01:24.617 回答