JSch“exec”频道无法使用“echo'something'> filename”创建文件

问题描述 投票:-1回答:1

我使用JCraft库编写了一个代码,使用exec通道连接到远程,并在远程创建一个文件。该文件的内容是我echoing然后使用> filename.ini放入文件。 echo工作正常,但> filename.ini没有在远程创建任何文件。 我该如何解决这个问题? 这是代码:

Session session=jsch.getSession(user,host, 22);
        session.setPassword(pswd);
        session.setConfig("StrictHostKeyChecking", "no");
        session.setConfig("PreferredAuthentications","publickey,keyboard-interactive,password");
        session.connect();
        System.out.println("Connected");


        Channel channel=session.openChannel("exec");
        channel.setInputStream(null);
        String command = "echo '\"Hi\"|\"Hello\"' | sed -e 's/|/\\n/g' > /home/myuser/tmp.ini; cat /home/myuser/tmp.ini";
        ((ChannelExec) channel).setCommand("sudo -iu myuser -p '' " + command);
        InputStream in = channel.getInputStream();
        OutputStream out = channel.getOutputStream();
        ((ChannelExec) channel).setPty(true);
        ((ChannelExec) channel).setErrStream(System.err);
        channel.connect(); 

我错过了什么吗?

java jsch
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.