我正在尝试与服务器建立远程连接以执行某些命令。 我是新手,所以开始谷歌搜索。经过一番搜索,我试了一下:
我正在使用sshj0.2.3.jar.
以下是我实施它的方式:
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
final SSHClient ssh = new SSHClient();
ssh.loadKnownHosts();
ssh.connect("serverName");
try{
ssh.authPublickey("myUserId");
final Session session = ssh.startSession();
try{
final Command cmd = session.exec("net send myMachineName Hello!!!");
System.out.println(cmd.getOutputAsString());
System.out.println("\n Exit Status: "+cmd.getExitStatus());
}finally{
session.close();
}
}finally{
ssh.disconnect();
}
}
}
但我得到了以下例外:
Exception in thread "main" java.lang.NoClassDefFoundError: org.slf4j.LoggerFactory at net.schmizz.sshj.DefaultConfig.(DefaultConfig.java:92) at net.schmizz.sshj.SSHClient.(SSHClient.java:133) at SSHTEST.main(SSHTEST.java:24) Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory at java.net.URLClassLoader.findClass(URLClassLoader.java:419) at java.lang.ClassLoader.loadClass(ClassLoader.java:643) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:345) at java.lang.ClassLoader.loadClass(ClassLoader.java:609) .....
我需要额外的罐子,我需要多少个额外的罐子。我是否正确实施? 请帮忙。
提前致谢。
答案 0 :(得分:3)
通过Google搜索sshj
,first result显示答案:
依赖
Java 6+。 slf4j是必需的。 强烈推荐bouncycastle 使用一些加密所需 算法。需要jzlib 使用zlib压缩。
答案 1 :(得分:2)
是的,你需要slf4j的罐子(见the 2-page manual)
slf4j附带一个API然后是一个可插拔的实现,但是建议的slf4j-simple应该没问题
答案 2 :(得分:1)
slf4j只是一个门面,你需要提供一个具体的实现。如果你真的不关心日志记录,请坚持slf4j-nop - $(ver).jar,它存在于slf4j发行版中。