【发布时间】:2011-07-15 16:51:02
【问题描述】:
有人知道如何用 Java 读取 telnet 的输出吗?我能够连接到 服务器并执行一些命令,但我需要该命令的输出。
例如,命令 ls 给出了所有文件和目录的列表,所以我想得到它 列出并在我的 Java 代码中使用它。
我曾尝试过用于 Telnet 的 3rd 方库,例如 apache-commons 和 sinetfactory(www.jscape.com ) 但我的情况没有结果...
伊戈尔
【问题讨论】:
有人知道如何用 Java 读取 telnet 的输出吗?我能够连接到 服务器并执行一些命令,但我需要该命令的输出。
例如,命令 ls 给出了所有文件和目录的列表,所以我想得到它 列出并在我的 Java 代码中使用它。
我曾尝试过用于 Telnet 的 3rd 方库,例如 apache-commons 和 sinetfactory(www.jscape.com ) 但我的情况没有结果...
伊戈尔
【问题讨论】:
您可以读取进程InputStream 的输出,如下所示:
final Process process =
new ProcessBuilder("path/to/telnet", "and", "some", "args").start();
final AtomicBoolean running = new AtomicBoolean(true);
final InputStream processData = process.getInputStream();
// start a thread to read process output
new Thread(new Runnable(){
@Override
public void run(){
while(running.get()){
// read processData
}
}
}).start();
process.waitFor();
running.set(false);
【讨论】:
我知道您要求的是 java 解决方案,但是expect 脚本语言是为这种类型的东西开发的。 http://expect.sourceforge.net/
如果必须是java,那么请无视。
【讨论】: