Java - Enviar comandos por SSH con JSch

 
Vista:

Enviar comandos por SSH con JSch

Publicado por Alberto (1 intervención) el 10/11/2017 15:38:25
Buenas tardes, compañeros/as:

Estoy intentando hacer una conexión a mi router por SSH y enviar el comando de reinicio del mismo. Lo primero ya lo consigo, lo que no consigo es que funcione el comando "restart" con la biblioteca Expect4j. Este es el código que utilizo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Hashtable;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelShell;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
 
import expect4j.Expect4j;
 
 
public class Router {
 
	public static void main(String[] args) {
 
		try {
			JSch jsch = new JSch();
			Session session = jsch.getSession("user", "host");
			session.setPassword("password");
			session.setConfig("StrictHostKeyChecking", "no");
			session.connect(60 * 1000);
			Channel channel = session.openChannel("shell");
 
 
			Expect4j expect = new Expect4j(channel.getInputStream(),
					channel.getOutputStream());
			channel.setInputStream(System.in);
			channel.setOutputStream(System.out);
 
			expect.send("restart");
 
 
			channel.connect();
 
 
 
		} catch (JSchException e) {
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
 
 
 
 
	}
 
}

Y esto es lo que obtengo al ejecutarlo:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/oro/text/regex/Perl5Matcher
at expect4j.Expect4j.<init>(Expect4j.java:37)
at expect4j.Expect4j.<init>(Expect4j.java:61)
at Router.main(Router.java:28)
Caused by: java.lang.ClassNotFoundException: org.apache.oro.text.regex.Perl5Matcher
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 3 more

Si tenéis alguna idea de por qué está fallando, por favor, hacédmelo saber.

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder