Исключение в потоке "читатель" java.lang.NoClassDefFoundError: org / bouncycastle / crypto / ec / CustomNamedCurves - PullRequest
0 голосов
/ 04 октября 2018

Я использовал пакет «net.schmizz.sshj.SSHClient» для подключения к серверу.Ниже мой код:

public class ConnectToServer {
    String hostName = "10.250.176.6";
    int port = 22;
    public ConnectToServer(String hostName, int port) {
        this.hostName = hostName;
        this.port = port;
    }

    public void ssh() {
      SSHClient ssh = new SSHClient();
      String cmd = "ipconfig";
      try {
            ssh.connect(this.hostName, this.port);
            ssh.isConnected();
            final Process process = Runtime.getRuntime().exec(cmd);
            ssh.disconnect();
      } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
      }

    }

Однако я столкнулся с ошибкой: " Исключение в потоке" читатель "java.lang.NoClassDefFoundError: org / bouncycastle / crypto / ec / CustomNamedCurves ».Я добавил bcprov-jdk15on-1.49 и bouncycastle.jar в мой путь к классам.Пожалуйста, помогите мне исправить эту ошибку.

Полное исключение:

    08:46:05.526 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting  <<kex done>> 
    08:46:05.528 [reader] DEBUG    n.s.sshj.transport.KeyExchanger - Received SSH_MSG_KEXINIT   
    08:46:05.528 [reader] DEBUG n.s.sshj.transport.KeyExchanger -    Negotiated algorithms: [ kex=curve25519-sha256@libssh.org;    sig=ecdsa-sha2-nistp256; c2sCipher=aes128-ctr; s2cCipher=aes128-ctr; c2sMAC=hmac-sha1; s2cMAC=hmac-sha1; c2sComp=none; s2cComp=none ]    
    **Exception in thread "reader" java.lang.NoClassDefFoundError:    org/bouncycastle/crypto/ec/CustomNamedCurves**    
    at    net.schmizz.sshj.transport.kex.Curve25519DH.getCurve25519Params(Curve25519DH.java:60)
        at    net.schmizz.sshj.transport.kex.Curve25519SHA256.initDH(Curve25519SHA256.java:44)
        at    net.schmizz.sshj.transport.kex.AbstractDHG.init(AbstractDHG.java:46)
        at    net.schmizz.sshj.transport.KeyExchanger.gotKexInit(KeyExchanger.java:236)
        at    net.schmizz.sshj.transport.KeyExchanger.handle(KeyExchanger.java:356)
        at    net.schmizz.sshj.transport.TransportImpl.handle(TransportImpl.java:503)
        at net.schmizz.sshj.transport.Decoder.decode(Decoder.java:102)  
    at       net.schmizz.sshj.transport.Decoder.received(Decoder.java:170)      at  net.schmizz.sshj.transport.Reader.run(Reader.java:59) 
Caused by:    java.lang.ClassNotFoundException:    org.bouncycastle.crypto.ec.CustomNamedCurves     
    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)

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

В вашем банке, вероятно, отсутствуют зависимости (или некоторые из них). Если это проект maven, я советую вам переключиться на Maven.

Хороший учебник можно найти здесь: Maven за 5 минут

Я думаю, что SSH-клиент отсутствует org.Bouncycastle.crypto как библиотека (зависимость).Быстрый способ исправить это - достать банку тоже.

0 голосов
/ 04 октября 2018

Очистите ваш проект или перестройте его снова.Если проблема не решена, опубликуйте полное исключение, чтобы мы получили больше ясности.

...