如何从java应用程序在远程机器上运行perl脚本?
嗨,我在一个java应用程序中工作。我需要从本地机器(windows)执行一个perl脚本(linux),它位于java应用程序的远程机器中。我需要自动完成这个过程,不需要人工干预。现在我将清楚地解释这个过程,目前要运行perl脚本,我只需打开putty窗口,连接到远程机器并执行perl脚本如何从java应用程序在远程机器上运行perl脚本?,java,perl,Java,Perl,嗨,我在一个java应用程序中工作。我需要从本地机器(windows)执行一个perl脚本(linux),它位于java应用程序的远程机器中。我需要自动完成这个过程,不需要人工干预。现在我将清楚地解释这个过程,目前要运行perl脚本,我只需打开putty窗口,连接到远程机器并执行perl脚本 现在我想通过点击一个按钮自动完成上面解释的过程。因此,当我单击一个按钮时,它应该调用一个连接到远程机器的函数,然后执行perl脚本。请帮助我解决这个问题。我需要尽快用java编写此代码。您可以使用与手动操作
现在我想通过点击一个按钮自动完成上面解释的过程。因此,当我单击一个按钮时,它应该调用一个连接到远程机器的函数,然后执行perl脚本。请帮助我解决这个问题。我需要尽快用java编写此代码。您可以使用与手动操作相同的过程,通过使用ssh库,您可以创建到服务器的安全连接并执行所需的脚本
这里列出了一些您可以使用的JavaSSH库 导入Jcraft jar并运行以下代码:
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();
}
}
}
你可以在这里找到JSch的好例子:谢谢你的回复,这里有一些关于JSch的文档或教程,我做了一些研究,但似乎没有