2011-05-30 116 views
1

嗨我正在一個Java應用程序工作。我需要從本地機器(windows)執行一個perl腳本(linux),它位於Java應用程序中的遠程機器上。我需要自動執行這個過程,而不需要手工進行處理。現在我將清楚地解釋這個過程,目前運行perl腳本,我只需打開膩子窗口,連接到遠程機器並執行perl腳本。如何從java應用程序運行遠程機器上的Perl腳本?

現在我想通過點擊一個按鈕來自動執行上面解釋的過程。所以當我點擊一個按鈕時,它應該調用一個連接到遠程機器的函數,然後執行perl腳本。請幫我解決這個問題。我需要儘快在java中使用此代碼。

回答

2

您可以使用與手動操作相同的過程,通過使用ssh庫可以創建與服務器的安全連接並執行所需的腳本。

question列出了一些可以使用的java ssh庫。

+0

你可以在這裏找到行動JSch的很好的例子:[http://www.jcraft.com/jsch/examples](http:// www.jcraft.com/jsch/examples) – 2011-05-30 22:23:09

+0

感謝您的回覆,有一些文檔或教程JSch我做了一些研究,但似乎沒有 – 2011-06-01 11:10:34

0

導入Jcraft罐子並運行下面的代碼:

package package1; 

import java.io.BufferedReader; 
import java.io.InputStream; 
import java.io.InputStreamReader; 

import com.jcraft.jsch.Channel; 
import com.jcraft.jsch.ChannelExec; 
import com.jcraft.jsch.JSch; 
import com.jcraft.jsch.Session; 


public class ConnExec 
{ 
    public void connExec() 
    { 
     String host="devHostIP.sName.dev"; 
     String user="UN"; 
     String password="PWD"; 
     String commandStr = "ls /local/dev/folder/inbound"; 
     String line; 

     try 
     { 
      java.util.Properties config = new java.util.Properties(); 
      config.put("StrictHostKeyChecking", "no"); 
      JSch jsch = new JSch(); 
      Session session=jsch.getSession(user, host, 22); 
      session.setPassword(password); 
      session.setConfig(config); 
      session.connect(); 
      System.out.println("Connected to the server.....\n"); 

      Channel channel=session.openChannel("exec"); 
      channel.setInputStream(null); 
      ((ChannelExec)channel).setCommand(commandStr); 

      InputStream in=channel.getInputStream(); 
      channel.connect(); 

      BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 
      while ((line = reader.readLine()) != null) 
      { 
       System.out.println(line.toString()); 
      } 

      channel.disconnect(); 
      session.disconnect(); 
      System.out.println("Terminated.....\n"); 

     } 
     catch(Exception e) 
     { 
      e.printStackTrace(); 
     } 

    } 

} 
相關問題