小编Mig*_*gel的帖子

通过JSch在Java上运行Linux命令

我正在通过Java上的JSch建立ssh连接,在我尝试运行此.sh文件之前,一切似乎都工作正常。外壳程序脚本的名称是repoUpdate.sh,非常简单:

echo  ' ****Repository update****'
echo  ' Location: /home/cissys/repo/'
echo -e ' Command: svn update /home/cissys/repo/2.3.0'

svn update /home/cissys/repo/2.3.0
Run Code Online (Sandbox Code Playgroud)

这是我通过适当的命令响应直接在linux控制台上获得的输出:

[cissys@dsatelnx5 ~]$ repoUpdate.sh
 ****Repository update****
 Location: /home/cissys/repo/
 Command: svn update /home/cissys/repo/2.3.0

At revision 9432.
Run Code Online (Sandbox Code Playgroud)

现在,这是我的带有ssh连接的方法的Java代码,该代码试图调用同一文件

public void cmremove()
{
    try
    {
        JSch jsch = new JSch();
        Session session = jsch.getSession(user, host, port);
        UserInfo ui = new SUserInfo(pass, null);
        session.setUserInfo(ui);
        session.setPassword(pass);
        session.connect();

        ChannelExec channelExec = (ChannelExec)session.openChannel("exec");

        InputStream in = channelExec.getInputStream();

        channelExec.setCommand("./repoUpdate.sh");
        channelExec.connect();

        BufferedReader reader = new BufferedReader(new InputStreamReader(in));
        String …
Run Code Online (Sandbox Code Playgroud)

java linux ssh command jsch

4
推荐指数
2
解决办法
3万
查看次数

标签 统计

command ×1

java ×1

jsch ×1

linux ×1

ssh ×1