2013-11-22 20 views
0

我的代碼如下錯誤並且只有我在Google上可以找到的信息涉及記錄錯誤,但沒有看起來像我的東西。我已經嘗試安裝它說中央Maven回購需要依賴,但問題仍然存在。有誰知道爲什麼即時通訊課沒有發現異常?sshj 0.9.0拋出NoClassDefFoundError:net/schmizz/sshj/SSHClient

import java.io.IOException; 
import java.util.concurrent.TimeUnit; 

import net.schmizz.sshj.SSHClient; 
import net.schmizz.sshj.common.IOUtils; 
import net.schmizz.sshj.connection.channel.direct.Session; 
import net.schmizz.sshj.connection.channel.direct.Session.Command; 

public class ConnectSSH { 

public void connecting() throws IOException { 

    @SuppressWarnings("resource") 
    final SSHClient ssh = new SSHClient(); 

    ssh.loadKnownHosts(); 
    ssh.connect("*******"); 

    try { 
     ssh.authPassword("*****", "*****"); 
     final Session session = ssh.startSession(); 
     try { 
      final Command cmd = session.exec("*****"); 
      System.out.print(IOUtils.readFully(cmd.getInputStream())); 
      cmd.join(5, TimeUnit.SECONDS); 
      System.out.print("\n** exit status: " + cmd.getExitStatus()); 
     } finally { 
      session.close(); 
     } 
    } finally { 
     ssh.disconnect(); 

    } 

} 

}


運行時錯誤下被拋出:

Exception in thread "main" java.lang.NoClassDefFoundError: net/schmizz/sshj/SSHClient 
    at ssh.liq_con.stats.ConnectSSH.connecting(ConnectSSH.java:16) 
    at ssh.liq_con.stats.App.main(App.java:8) 
Caused by: java.lang.ClassNotFoundException: net.schmizz.sshj.SSHClient 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 2 more 

注意我有:

<dependency> 
      <groupId>net.schmizz</groupId> 
      <artifactId>sshj</artifactId> 
      <version>0.9.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>1.7.5</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.sshd</groupId> 
      <artifactId>sshd-core</artifactId> 
      <version>0.9.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.bouncycastle</groupId> 
      <artifactId>bcpkix-jdk15on</artifactId> 
      <version>1.49</version> 
     </dependency> 
     <dependency> 
      <groupId>com.jcraft</groupId> 
      <artifactId>jzlib</artifactId> 
      <version>1.1.3</version> 
     </dependency> 

回答

1

你實際工作中你不需要安裝依賴關係 - 它們是由Maven自動獲取的。這可能是與你的類路徑的問題,您可以嘗試添加爲您public static void main(String[])的第一行:

System.out.println(System.getProperty("java.class.path")); 

,以確保你在classpath有sshj-0.9.0.jar