2017-05-17 3 views
1

Ich habe ein Problem. Ich habe ein einfaches Programm, mit ssh auf meine Himbeere conect und ich habe Ausnahme bekam:SSH-Shell Ausnahme

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/io/input/NullInputStream at Main.main(Main.java:6) Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.input.NullInputStream at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 1 more`

Code:

import com.jcabi.ssh.SSH; 
import com.jcabi.ssh.Shell; 

class Main{ 
    public static void main(String[] args) throws Exception{ 
     String hello = new Shell.Plain(
       new SSH(
         "192.168.1.19", 22, 
         "pi", "raspberry" 
       ) 
     ).exec("echo 'Hello, world!'"); 
    } 
} 

Antwort

0

Sie scheinen Benutzernamen und das Benutzerkennwort als Parameter zu senden, aber Basierend auf der Dokumentation erwartet diese Bibliothek einen RSA-Schlüssel.

Verwenden SSHByPassword

http://ssh.jcabi.com/apidocs-1.5/com/jcabi/ssh/SSHByPassword.html

wie folgt aus:

private String address; 
private int port; 
private String user; 
private String password; 

/** 
* @param address - server IP 
* @param port - SSH port 
* @param user - login user 
* @param password - user password 
*/ 

public SSHcommunicator(String address, int port, String user, String password) { 
    this.address = address; 
    this.port = port; 
    this.user = user; 
    this.password = password; 
} 

public String sayHello() throws IOException { 

    Shell shell = new SSHByPassword(address, port, user, password); 
    return new Shell.Plain(shell).exec("echo 'Hello, world!'"); 
}