Java和putty - 发送命令

时间:2011-04-28 11:20:27

标签: java putty

  

可能重复:
  How to send commands to putty

如何使用java向putty发送命令? 我必须使用Putty。 我的意思是发送命令到putty窗口,例如Java应该将“ls -l”发送到putty窗口。

3 个答案:

答案 0 :(得分:6)

要使用Java™中的Putty,您需要使用Putty(命令行)Link PLink。您可以从Putty的下载页面获取此信息:Putty Download Page

您需要运行putty.exe来配置会话(在示例中,我创建了一个配置文件名称“profile”)。然后,您可以加载会话并发送/接收信息。不要忘记确保检查标准和错误输入流。

要确保您可以从Java™运行它,您可能需要执行以下三项操作之一:

  1. 将putty.exe和plink.exe放在C:\ Windows \
  2. 之类的位置
  3. 将putty.exe和plink.exe放在一个文件夹中,并将该文件夹添加到系统环境中(推荐方法)。
  4. 将putty.exe和plink.exe放在与Java™应用程序相同的文件夹中,并确保正确引用它。
  5. 以下是示例代码。

    try {
        String command = "plink -load profile";
    
        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 (1000);
    
        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 ();
    }
    

    希望这有助于那些对快速设置Java快速Putty感兴趣的人。它也是获得串口通信而不需要本机驱动程序等的好方法(尽管功能有限)。

答案 1 :(得分:2)

如果您只需要SSH,请查看:Jcraft的jsch:http://www.jcraft.com/jsch/

答案 2 :(得分:1)

你没有必须使用 putty。使用java库连接SSH要好得多。有关SSH的Java库的讨论,请参阅SSH library for Java