【发布时间】:2016-04-11 20:10:57
【问题描述】:
Plink 新手,我正在尝试使用 Plink 从 putty 加载保存的会话,我的会话称为 "saved session1",当我加载并运行会话并远程连接到服务器时PuTTY 首先要求我输入“登录为:”,然后输入 “密码:”。给定我的 "saved session1",用户名 "username1" 和密码 "password1"。我的代码基于之前在
的 stackoverflow 帖子Java and putty - send commands [duplicate]
我有代码,但不确定如何格式化命令,假设 PuTTY 和 Plink 与我的 java 代码位于同一目录中,并给出有关服务器的所有信息、我的会话和登录详细信息,我该如何使用r.exe(); 命令简单地登录到服务器并打印主目录内容?
import java.io.*;
import java.net.*;
public class javaputty{
public static void main(String[] args){
InputStream std;
OutputStream out;
InputStream err;
try {
String command = "plink -load saved session1";
String username = "username1";
String password = "password1";
Runtime r = Runtime.getRuntime ();
Process p = r.exec (command);
std = p.getInputStream ();
out = p.getOutputStream ();
err = p.getErrorStream ();
out.write ("ls -l\n".getBytes ());
out.flush ();
Thread.sleep (10000);
int value = 0;
if (std.available () > 0) {
System.out.println ("STD:");
value = std.read ();
System.out.print ((char) value);
while (std.available () > 0) {
value = std.read ();
System.out.print ((char) value);
}
}
if (err.available () > 0) {
System.out.println ("ERR:");
value = err.read ();
System.out.print ((char) value);
while (err.available () > 0) {
value = err.read ();
System.out.print ((char) value);
}
}
p.destroy ();
}
catch (Exception e) {
e.printStackTrace ();
}
}
}
【问题讨论】: