我正在寻找一个库,允许我创建让远程命令执行的3个线程执行每个命令需要13分钟。你会建议什么样的ssh lib文件,它可以执行这样的任务? (免费Maveric版本 - 失败不愿意支付2.4k $的完整库,现在使用ssh2 ...)支持java的SSH库很好的支持多线程!
回答
我从个人经验知道,JSch正常工作,只要你创建一个单独的SSH连接每个线程。还有sshj和Ganymed SSH-2,你可能想看看。
这里的远程命令执行与JSch一个简单的例子:
JSch jsch = new JSch();
Session session = jsch.getSession(user, host);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword(password);
session.connect(timeout);
Channel channel = session.openChannel("exec");
ChannelExec channelExec = (ChannelExec) channel;
channelExec.setCommand(command);
channel.connect();
// read channel.getInputStream() here if you want to capture the output
channel.disconnect();
session.disconnect();
+1,SSH的性质自然不会“多线程”。这是一个命令流,流本身是连续的。 – gustafc 2011-04-05 07:50:06
我与Jsch唯一的问题是它没有任何ducumentation(比ssh2 == GANYMED SSH-2长3倍) - >导致不能在没有愚蠢的输入流的情况下打SHELL插入我的意思是start.shell(); execute.command(字符串); execute.command(字符串); end.shell();但可能你解决了这个神秘的问题(我想我已经在你的一篇文章中看到了关于shell多重命令(在应用程序中没有从键盘读取)的东西) – user615927 2011-04-05 08:37:59
我用一个工作示例更新了答案,你只需要填写变量。 – WhiteFang34 2011-04-05 08:55:01
- 1. 对Windows的SSH库支持
- 2. 支持多线程的arraylist
- 3. Java:最好的jdbc支持?
- 4. 支持良好的Java ADSI包装库?
- 5. Libevent多线程支持
- 6. COM多线程支持
- 7. MonetDB多线程支持
- 8. Racket支持多线程吗?
- 9. Webservice支持多线程?
- 10. waitall不支持sta线程上的多个句柄不支持
- 11. 支持库不支持aar
- 12. Android不支持的线程
- 13. IPad,IPhone中的多线程支持
- 14. 新来的android - 支持支持多屏
- 15. 最好的在线裁判拥有良好的Java支持?
- 16. 您认为哪些Eclipse支持很好?
- 17. .NET支持SSL的一个很好的XMPP库是什么?
- 18. 具有良好Javascript支持的多线程无头浏览器
- 19. 不支持弃用的线程方法不支持
- 20. java-me是否支持线程?
- 21. Python的库支持
- 22. Gwt和html5多线程/ WebGL支持
- 23. C++ HashMap中与多线程支持
- 24. DBCP - 它支持多线程吗?
- 25. libubox是否支持多线程
- 26. Cocos2d是否支持多线程?
- 27. 为什么PHP不支持多线程?
- 28. 多线程支持Inline Asm(x86)
- 29. php/apache会支持多线程吗?
- 30. Visual Studio 2008会支持多线程吗?
为什么不使用任何SSH LIB用'Executor' /'ExecutorService'结合起来呢? – musiKk 2011-04-05 06:59:54
@musiKk,并非所有的SSH库都是以线程安全的方式编写的。如果通过他们的邮件列表,JSch显然在今天出现了这个问题(除非已经改变)。 – 2011-04-05 07:08:29
@Vineet:对不起,也许我没有充分检查我的事实。唉,WhiteFang34似乎不同意。 ;) – musiKk 2011-04-05 07:42:03