Reputation: 33
I have a problem. I created a simple program, to conect to my raspberry by ssh and i have got exception:
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!'");
}
}
Upvotes: 1
Views: 314
Reputation: 567
You seem to be sending user name and user password as parameter, but based on documentation this lib expects RSA key.
Use SSHByPassword
http://ssh.jcabi.com/apidocs-1.5/com/jcabi/ssh/SSHByPassword.html
like this:
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!'");
}
Upvotes: 0