我正在运行两台Ubuntu 12.04计算机。机器A需要在机器B上启动浏览器(firefox或chrome),但它不需要它来查看浏览器窗口。它只需要启动浏览器并保留它。我使用JSch库(下面的代码片段)实现了它,但这是返回的消息 - 错误:未指定显示
作为解决方案,在机器B上,我将 DISPLAY 变量设置为 localhost:port 或 ipAddress:port 其中 ipAddress 是它自己的IP地址,而端口是0或其他一些数字,如10但它没有帮助。
以下是机器A的作品。
ssh -X <machine B ipAddress>
$firefox
我在Virtualbox上运行Windows 7作为主机和两个Ubuntu 12.04(一个32位另一个64位)虚拟机,带有桥接网络。
代码:
JSch jsch = new JSch();
Session session = jsch.getSession(user, ipAddress, 22);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
ChannelExec channelExec = null;
channelExec = (ChannelExec)session.openChannel("exec");
String command = "firefox -p project001 http://www.google.com";
channelExec.setCommand(command);
String port = command.substring(20, 21); // which is "1"
String display = ipAddress + ":" + port;
channelExec.setEnv("DISPLAY", display);
//channelExec.setXForwarding(false);
channelExec.setInputStream(null);
InputStream err = channelExec.getErrStream();
InputStream in = channelExec.getInputStream();
channelExec.connect();
有什么建议吗?非常感谢使用JSch或其他任何帮助。
更新:如果我更新命令以在后台运行firefox,它会运行,但我无法将其显示在浏览器窗口中。