2011-05-30 117 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(); 
     } 

    } 

} 
相关问题