从ssh启动java程序

时间:2016-10-11 13:23:17

标签: java ssh

我有一个带对话框的简单java程序

String s = (String)JOptionPane.showInputDialog(
                    frame,
                    "Complete the sentence:\n"
                    + "\"Green eggs and...\"",
                    "Customized Dialog",
                    JOptionPane.PLAIN_MESSAGE,
                    icon,
                    possibilities,
                    "ham");

如果我从Raspbian终端启动该程序,Dialog Box会出现,但是如果我从我的macbook连接RaspbianSSH,我就会启动该程序在那里Dialog Box没有出现。可能是什么问题?

1 个答案:

答案 0 :(得分:1)

当您使用ssh时,您只有一个终端,即它显示字符。你需要使用X11。这将允许您从远程计算机显示窗口和图形。

你需要:

  • Mac上的X11服务器(这听起来有点令人困惑,但它提供了显示图形的服务)。 X11曾经是OS X的一部分,但不再是。它可以从这里安装:https://www.xquartz.org/

  • 打开一个X11终端并启用远程主机的X11访问(参见xhost命令的手册页。最短的方式是xhost +允许从任何地方访问,但这是非常糟糕的安全性,除非在您信任所有机器的环境中,您安全地位于防火墙后面)

  • 在ssh服务器端允许x11Forwarding(请参阅https://unix.stackexchange.com/questions/12755/how-to-forward-x-over-ssh-from-ubuntu-machine

  • 在启用x11Forwarding的情况下打开您的ssh连接:ssh -X your-server