hierynomus / hierynomus/sshj

erro ao executar classe main

Open
#676 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
2.7k
Forks
620
Avg merge
3d 23h
Merged PRs (30d)
11

Description

Estou utilizando como referência o artigo : https://www.devmedia.com.br/executando-shell-scripts-utilizando-java/26495

Minha classe Main está:

package atualizacao;

import java.io.IOException;

```
public class Principal {

public static void main(String[] args) throws IOException {
final RemoteShell shell = new RemoteShell("192.168.1.39", "senica", "123456789teste");
shell.executeCommand("ls ~ | sort");

}

}

assim está a minha class RemoteShell:

package atualizacao;

import java.io.BufferedReader;
import java.io.Closeable;
import java.io.IOException;
import java.io.InputStreamReader;
import java.security.PublicKey;
import java.util.concurrent.TimeUnit;
import net.schmizz.sshj.SSHClient;
import net.schmizz.sshj.connection.ConnectionException;
import net.schmizz.sshj.connection.channel.direct.Session;
import net.schmizz.sshj.connection.channel.direct.Session.Command;
import net.schmizz.sshj.transport.TransportException;
import net.schmizz.sshj.transport.verification.HostKeyVerifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class RemoteShell {

private final Logger log = LoggerFactory.getLogger(RemoteShell.class);
private final String machine;
private final String user;
private final String password;

public RemoteShell(final String machine, final String user, final String password) {
this.machine = machine;
this.user = user;
this.password = password;
}

public void executeCommand(final String command) throws IOException {

// Cliente SSH
final SSHClient ssh = new SSHClient();

try {
// Configura tipo de KeyVerifier
setupKeyVerifier(ssh);
// Conecta com a maquina remota
ssh.connect(machine);
// Autenticacao
ssh.authPassword(user, password);

// Executa comando remoto
executeCommandBySSH(ssh, command);
} finally {
ssh.disconnect();
}
}

private void executeCommandBySSH(final SSHClient ssh, final String command)
throws ConnectionException, IOException, TransportException {

final Session session = ssh.startSession();
BufferedReader bf = null;

try {
// Executa comando
final Command cmd = session.exec(command);
bf = new BufferedReader(new InputStreamReader(cmd.getInputStream()));
String line;
// Imprime saida, se exister
while ((line = bf.readLine()) != null) {
System.out.println(line);
}
// Aguarda
cmd.join(1, TimeUnit.SECONDS);
} finally {
secureClose(bf);
secureClose(session);
}
}

private void setupKeyVerifier(final SSHClient ssh) {
ssh.addHostKeyVerifier(
new HostKeyVerifier() {
@Override
public boolean verify(String arg0, int arg1, PublicKey arg2) {
return true; // sem verificacao
}
});
}

private void secureClose(final Closeable resource) {
try {
if (resource != null) {
resource.close();
}
} catch (IOException ex) {
log.error("Erro ao fechar recurso", ex);
}
}

}

Quando vou rodar a classe main o eclipse reporta a seguinte mensagem :

Exception in thread "main" java.lang.NoClassDefFoundError: net/schmizz/sshj/transport/verification/HostKeyVerifier
at atualizacao.Principal.main(Principal.java:8)
Caused by: java.lang.ClassNotFoundException: net.schmizz.sshj.transport.verification.HostKeyVerifier
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:606)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 1 more

O que eu já verifiquei >>

![image](https://user-images.githubusercontent.com/81999429/113632008-bc877780-9640-11eb-9bdb-232e1283e4ef.png)

![image](https://user-images.githubusercontent.com/81999429/113632046-ce691a80-9640-11eb-834a-340670ba454d.png)

Não consegui identificar o problema, parece que o eclipse não consegue achar a classe, mas eu coloquei as dependências

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.