通过java实现ssh到

通过java实现ssh到,java,linux,ssh,Java,Linux,Ssh,我想通过java代码执行这个命令 sshabc@ubuntu 我正在使用这段代码,但它不能完全工作,它不能登录到服务器 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; public class JavaApplication4 { /** * @param args the command line

我想通过java代码执行这个命令 sshabc@ubuntu

我正在使用这段代码,但它不能完全工作,它不能登录到服务器

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class JavaApplication4 {

/**
 * @param args the command line arguments
 */
    public static void main(String[] args) throws IOException, InterruptedException {
    // TODO code application logic here
    ProcessBuilder pb = new ProcessBuilder("ssh","usmanmahmood@ubuntu");
//pb.redirectErrorStream(); //redirect stderr to stdout 
Process process = pb.start();
InputStream inputStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line = null;
while((line = reader.readLine())!= null) {
    System.out.println(line);
}

    int waitFor = process.waitFor();

   } 


   } 

请告诉我错误,

您可能正在windows计算机上运行它?ssh对于windows是无效的命令,除非您专门添加了它。大多数人会建议使用JSCH,问题是您正在等待
读取器发出的
null
行,但您永远无法从打开的SSH会话中获得该行

在您的情况下,
ssh
正在远程服务器的命令提示符下等待您,而您正在等待
ssh

尝试将要运行的命令添加到传递到ssh的选项中。它只需登录并运行它


不过,一个可能更相关的问题是,为什么要在Java中这样做?为什么不写一个shell脚本?< /p>是否有一个错误消息?考虑使用jsCH:@科兰,没有错误MSG,这是输出。usmanmahmood@ubuntu密码:欢迎使用Ubuntu 12.10(GNU/Linux 3.5.0-17-generic x86_64)*文档:可以更新257个软件包。59更新是安全更新。我不想使用jsch,我的基本目的是用ssh连接aws上的ec2实例。然后在那里运行java代码,有人能告诉我代码有什么问题吗,并给我提供一个可以工作的代码吗?没有,我不是在windows机器上运行的,我是在linux机器上运行的,Ubuntu@user2061477:正如Collin提到的,您可以拥有一个shell脚本,它将在远程计算机上ssh并执行另一个shell脚本。这不需要Java。您可以在本地计算机上cron脚本文件,该文件将以特定的时间间隔执行。Thanx非常感谢您的帮助,我是通过java完成的,因为我的老师让我这么做……那么,您的意思是说我不能通过java代码登录?我已将while循环更改为while(count您可以,但您的代码正在等待会话关闭,除非您关闭它,否则不会发生这种情况。您需要运行
ssh
命令,使其在登录时运行远程程序,或者您需要解析服务器的响应,找出ssh何时登录,然后自己编写命令无论您在输出中输入了什么,您的代码都已正确登录,但一旦ssh登录,您就不会给它任何操作。我如何关闭它?我的基本目的是通过ssh在ec2实例上运行java文件,我必须通过java代码来完成,因此,我正在尝试这样做……如果您能告诉我这样做的方法,那么我将非常感谢您祝你好运