2016-05-10 10 views
1

私は以下のコードを試しました。しかしパテは始まっていて、すぐに閉ざされている。 command.txtにはls -lrtコードが含まれています。パテをJavaコードで接続し、コマンドを端末に渡すにはどうすればいいですか?

Runtime r = Runtime.getRuntime(); 
    //Runtime r2 = Runtime.getRuntime(); 
    Process p = null; 
    //Process p2 = null; 
    String s = "D:\\Nandan\\putty.exe -ssh -l ***** -pw ******** XX.XX.XX.XX -m D:\\Nandan\\command.txtx"; 
    //String s2 = "ls -lrt"; 
    try 
    { 
     p = r.exec(s); 
     p.waitFor(); 

    } catch (Exception e) 
    { 
     System.out.println("Exception error :"+e.getMessage()); 
     e.printStackTrace(); 
    } 
+0

を通過してくださいです。あなたは直接sshを使うことができます – Sanjeev

答えて

3

代わりにパテを呼び出すのあなた、あなたが直接、Linuxマシン上の任意の操作を実行するためのJava SSHライブラリJSch.jarを使用することができますのでパテは、SSHクライアントです。下記の詳細を学ぶために、同じ

Session session = new JSch().getSession(user, hostName, 22);   
session.setPassword(password); 
java.util.Properties config = new java.util.Properties(); 
config.put("StrictHostKeyChecking", "no"); 
session.setConfig(config); 
session.connect(); 
Channel channel=session.openChannel("exec"); 
((ChannelExec)channel).setCommand("some command here"); 
String result = IOUtils.toString(channel.getInputStream()); 
channel.disconnect(); 
session.disconnect(); 

のためのサンプルコードは、パテを使用したいのはなぜリンクhttp://www.jcraft.com/jsch/examples/

関連する問題