首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在单独的控制台/命令窗口中显示使用JSch执行SSH命令的结果

在单独的控制台/命令窗口中显示使用JSch执行SSH命令的结果,可以通过以下步骤实现:

  1. 首先,确保已经安装了Java开发环境(JDK)和JSch库。JSch是一个Java实现的SSH2协议库,用于在Java程序中执行SSH连接和命令操作。
  2. 导入JSch库到你的Java项目中。可以通过在项目的构建路径中添加JSch库的jar文件,或者使用构建工具(如Maven或Gradle)来管理依赖。
  3. 创建一个Java类,用于执行SSH命令并显示结果。以下是一个示例代码:
代码语言:java
复制
import com.jcraft.jsch.*;

public class SSHCommandExecutor {
    public static void main(String[] args) {
        String host = "your_host";
        String username = "your_username";
        String password = "your_password";
        int port = 22;

        try {
            JSch jsch = new JSch();
            Session session = jsch.getSession(username, host, port);
            session.setPassword(password);
            session.setConfig("StrictHostKeyChecking", "no");
            session.connect();

            String command = "your_ssh_command";
            Channel channel = session.openChannel("exec");
            ((ChannelExec) channel).setCommand(command);
            channel.setInputStream(null);
            ((ChannelExec) channel).setErrStream(System.err);

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

            byte[] buffer = new byte[1024];
            StringBuilder result = new StringBuilder();
            while (true) {
                while (in.available() > 0) {
                    int bytesRead = in.read(buffer, 0, 1024);
                    if (bytesRead < 0) break;
                    result.append(new String(buffer, 0, bytesRead));
                }
                if (channel.isClosed()) {
                    if (in.available() > 0) continue;
                    System.out.println("Exit status: " + channel.getExitStatus());
                    break;
                }
                try {
                    Thread.sleep(1000);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            System.out.println(result.toString());

            channel.disconnect();
            session.disconnect();
        } catch (JSchException | IOException e) {
            e.printStackTrace();
        }
    }
}
  1. 替换代码中的"your_host"、"your_username"、"your_password"和"your_ssh_command"为实际的SSH连接信息和要执行的SSH命令。
  2. 运行Java程序,控制台/命令窗口将显示使用JSch执行SSH命令的结果。

这种方法使用JSch库建立SSH连接,并通过执行SSH命令获取命令的输出结果。然后,将结果显示在控制台/命令窗口中。这对于需要在Java程序中执行远程服务器上的命令并查看结果的场景非常有用。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

CMD窗口中使用javac和java命令进行编译和执行带有包名具有继承关系

解决办法为:我们需要使用javac *.java命令来进行运行,因为此时存在继承关系,编译子类同时也需要先编译父类 2)运行java Zi命令,出现以下错误 ? 这是什么原因呢?...这是因为我们不存在子文件夹com/hafiz/zhang并且该子文件夹下不存在Zi.class文件,故找不到主类。 解决办法是:使用javac  -d . *.java("-d ."...这时我们再运行:java com.hafiz.zhang.Zi命令,程序执行成功! ?...由此我们得出了CMD窗口中使用javac和java命令进行编译和执行带有包名具有继承关系方式: 1.使用javac -d . *.java进行编译 2.使用java com.hafiz.Zi(...带包名类全名)命令进行运行!

1.6K40
  • 命令行下,Mysql显示各个端所使用字符集命令

    win10中,命令行情况下,Mysql显示各个端所使用字符集命令: Microsoft Windows [版本 10.0.16299.64] (c) 2017 Microsoft Corporation...HY000): Incorrect string value: '\xB3\xAC\xBC\xB6\xB9\xDC...' for column 'userName' at row 1  #客户端传来数据编码是...gbk,而Mysql针对客户端默认使用是utf8,所以会报错 mysql> mysql> show variables like 'character%';  #显示各个端所使用字符集,只对当前对话窗口有用...--+-----------+-----------+-------+------+----------+--------+ 1 row in set (0.00 sec)  #因为Mysql针对默认结果使用是...utf8编码,而我们pc端使用是gbk编码,所以会报错 mysql> set character_set_results=gbk;  #设置Mysql针对数据返回结果使用字符集为gbk编码,报错解决

    69620

    使用SSH连接远程主机并执行多个Bash命令最优雅方法是什么

    问题 我已经设置好了ssh代理,我可以用Bash脚本在外部服务器上运行命令执行以下操作: ssh blah_server "ls; pwd;" 现在,我真正想做是在外部服务器上运行许多长命令。...将所有这些命令都放在引号之间看起来会很不美观,而且我确实不想为了避开这个问题而多次使用SSH连接。 那么,有没有一种方法可以让我一次性完成这个操作,比如用括号或其他方式来包含所有的命令?...我寻找类似这样方法: ssh blah_server ( ls some_folder; ....回答 使用 Here-Document: ssh user@remote_host << EOF 命令1 命令2 命令3 EOF 不过这样执行会有一个问题: 输出信息开头都有一句提示 "Pseudo-terminal...如果要避免这个提示信息,可以将上述命令第一行改为 ssh user@remote_host /usr/bin/bash << EOF 朋友们可以拿手上测试环境试一试。

    13610

    通过JSch运行远程linux主机上shell脚本

    /version> 当然以下java代码可执行前提是,远程主机已经开通SSH服务(也就是我们平时登录主机所使用服务)。...并且远程主机上,为这个脚本设置可执行权限,方法如下: $ chmod +x hello.sh 本地java程序 我们可以使用下面的代码,去远程linux 主机执行shell脚本,详细功能请看代码注释...jsch = new JSch(); //SSH授信客户端文件位置,一般是用户主目录下.ssh/known_hosts jsch.setKnownHosts("/home/zimug/.ssh/known_hosts...in.read(tmp, 0, 1024); if (i < 0) break; //执行结果打印到程序控制台 System.out.print(new String(tmp, 0, i)); } if...= null) { jschSession.disconnect(); } } } } 最终本地控制台,获得远程主机上shell脚本执行结果

    2.2K00

    tmux简介及使用教程

    tmux是一个开源工具,用于一个终端窗口中运行多个终端会话。它可以减少过多打开终端控制台。...一个典型例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录时候,是找不回上一次执行命令。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。...默认前缀键是Ctrl+b,即先按下Ctrl+b,快捷键才会生效。 举例来说,帮助命令快捷键是Ctrl+b ?。它用法是, Tmux 窗口中,先按下Ctrl+b,再按下?,就会显示帮助信息。...以下命令都是 Tmux 窗口中执行。 5.1 划分格 tmux split-window命令用来划分格。...Ctrl+b z:当前窗格全屏显示,再使用一次会变回原来大小。 Ctrl+b Ctrl+:按箭头方向调整格大小。 Ctrl+b q:显示格编号。

    1.6K10

    java可以使用ssh访问linux框架有哪些

    前言写项目中发现需要使用到一些ssh去操作Linux一些命令。然后对此展开了一个研究调研,看一下有能否哪一些框架适合现在去做一些对应ssh操作。...JSch (JSch是一个纯Java实现SSH2协议客户端,可以用于Java应用程序中执行远程命令和传输文件。)...Ganymed SSH-2 for Java (Ganymed是一个基于JavaSSH-2协议客户端库,可用于Java应用程序中进行SSH连接和文件传输。...jsch这是一个用JAVA写一个ssh访问客户端,可以看到里面的工具类还是蛮多。虽然star数量没有多少,但是整体操作起来还是非常方便。接下来是一些使用demo示例。...阿帕奇这个框架我还是很看好。毕竟是阿帕奇开源出来。但是当他执行命令时候,有些时候我需要读取某个指令文件权限,文件大小还有一些特殊文件处理就比较难搞了。有一些特殊类没有找到。

    40100

    如何在Ubuntu 16.04上安装和使用Byobu进行终端管理

    Byobu主要功能包括多个控制台窗口,每个窗口中拆分格,显示主机状态通知和状态标记,以及跨多个连接持久会话。...第4步 - 启用彩色提示 Byobu还包括一个彩色提示,其中包括上次执行命令返回码。某些环境中默认启用它。...这是Byobu最有用功能之一; 您可以安全断开连接时保持命令运行和文档打开。 如果您希望分离当前会话但保持与服务器SSH连接,则可以使用Shift-F6。...F7 允许您在当前窗口中查看回滚历史记录。 使用几个选项,您已经执行了许多有用操作,这些操作很难通过单个标准SSH连接轻松复制。这就是让Byobu如此强大原因。...步骤7示例中,使用拆分而不是窗口可以很容易地使用syslog尾部,编辑器窗口和新命令提示符,这些都在同一个窗口中打开。

    10.1K00

    JSCH连接ssh终端执行文件操作

    JSch是一个纯Java实现SSH2协议客户端库。它允许您在Java应用程序中进行安全远程登录、文件传输和执行命令。您可以使用JSch来连接到远程服务器并执行各种操作。...artifactId> 0.1.55 执行命令相关操作 特别注意⚠️代码里面配置是exec渠道...是一个功能强大且广泛使用Java SSH客户端库,它提供了许多有用功能和API,可以轻松地实现SSH连接、文件传输和执行命令等操作。...JSch文档和示例非常详细,易于使用和理解。然而,一些用户可能会发现JSch学习曲线比较陡峭,需要一些时间来掌握其工作原理和API。...总体而言,JSch是一个非常优秀Java SSH客户端库,适用于各种SSH连接和文件传输方案。

    63220

    使用Ant进行ssh和scp操作

    使用Ant进行ssh和scp操作 一、简介:   现在我们安装Linux时候通常考虑到安全因素(默认情况下)是不打开telnet服务,而ssh服务是有的,ant很早就支持telnet,但要求我们Linux...还好自Ant1.60开始支持了SSH 及SCP 操作了,早在Ant之前若要支持SSH、SCP、SFTP等任务就必须下载j2sshj2ssh-ant.jar和j2ssh-core.jar(http:/...现在可以使用Ant提供Sshexec和scp任务,由$ANT_HOME/lib/ant-jsch.jar提供支持,但是同样你也要在http://www.jcraft.com/jsch/index.html...JSch是一个SSH2纯Java实现 JSch允许你连接到sshd server并采用端口映射,X11映射; Scp文件传输等,你可以把集成JSch提供功能到你自己Java项目中,JSch...执行Linux下命令时可以用分号”;”把多个命令隔开,它们将会依次执行,而不需要写多个sshexec进行多次连接,每次连接只执行一个命令

    1K10

    Tmux 简易教程

    打开窗口,会话开始;关闭窗口,会话结束,会话内部进程也会随之终止,不管有没有运行完。 一个典型例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。...这时,网络突然断线,再次登录时候,是找不回上一次执行命令。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。...1.2 Tmux 作用 Tmux 就是会话与窗口"解绑"工具,将它们彻底分离。 (1)它允许单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。...举例来说,帮助命令快捷键是Ctrl+b ?。它用法是, Tmux 窗口中,先按下Ctrl+b,再按下?,就会显示帮助信息。 然后,按下 ESC 键或q键,就可以退出帮助。...以下命令都是 Tmux 窗口中执行。 5.1 划分格 tmux split-window命令用来划分格。

    97120

    Linux运维-Tmux使用技巧与最佳实践

    # 新建一个指定名称会话 tmux new -s wxs1 分离会话 Tmux 窗口中,按下Ctrl+b d或者输入tmux detach命令,就会将当前会话与窗口分离。...重命名会话 我们可以终端环境中将会话重命名,如上面的命令,重命名之后通过 tmux ls 命令终端环境中看到列表中会显示会话新名称。...再按一次后恢复 显示格编号 # 显示格编号 Ctrl + b q 关闭格 ctrl+b x 关闭当前使用格,操作之后会给出是否关闭提示,按y确认即关闭。...tmux远程批量操作shell脚本 使用SSH或telnet远程连接服务器时,可能都遇到为一些长时间运行任务而头疼,比如系统备份、ftp 传输等等。...使用tmux打开一个终端窗口,可以在窗口里执行一个长时间运行交互式命令操作,令其一直在后台跑着,并且在按键ctrl-b-d后,可以无感知退出窗口, 而退出后窗口不会关闭,即窗口里执行交互命令也不会结束

    15410

    Tmux 速成教程:技巧和调整

    格 我认为沿竖直方向分割屏幕是个不错主意,这样我就可以在一边使用 Vim,而在另一边查看代码运行结果,如果需要的话,有时我还会再打开一个控制台。下面我就要讲解如何利用 Tmux 实现这一切。 ?...窗口 Tmux中,窗口是个格容器, 你可以将多个格放置在窗口中,并根据你实际需要在窗口中排列多个格,也是完全取决于你需要。...在这个 窗口中有两个格,一个用于 Vim,一个用于运行测试代码。最后再开启一个叫作“shell”窗口用于通过 Bash shell 运行命令。...Tmux 窗口功能非常实用,因为一个窗口中可以创建出多个格,这样一个窗口中就能同时查看所有格内容,通过这种方法可以高效地利用有限屏幕空间。...由于会话是建立 SSH 之上,所以不会产生额外开销。通过使用高速互联网,对于那些连接到远程会话上用户而言,他们会觉得这个会话就是运行在本地

    4K100

    What?纯Java居然能实现Xshell!

    ,另外还自己了解了Java用户连接sshjsch和实现前端shell页面的xterm.js....,我拦截器中加入用户标识是使用了随机UUID,这是因为作为一个独立websocket项目,没有用户模块,如果需要将这个项目集成到自己项目中,需要修改这部分代码,将其改为自己项目中识别一个用户所用用户标识...1.初始化连接 由于我们底层是依赖jsch实现,所以这里是需要使用jsch去建立连接。而所谓初始化连接,实际上就是将我们所需要连接信息,保存在一个Map中,这里并不进行任何真实连接操作。...第一个分支:如果客户端发来是终端用户名和密码等信息,那么我们进行终端连接。 第二个分支:如果客户端发来是操作终端命令,那么我们就直接转发到终端并且获取终端执行结果。...top命令 结语 这样我们就完成了一个webssh项目的实现,没有依赖其它任何组件,后端完全使用Java实现,由于用了SpringBoot,非常容易部署。

    2.5K10

    可能是东半球最全面易懂 Tmux 使用教程!( 强烈建议收藏 )

    打开窗口,会话开始;关闭窗口,会话结束,会话内部进程也会随之终止,不管有没有运行完。 一个典型例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。...这时,网络突然断线,再次登录时候,是找不回上一次执行命令。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。...1.2 Tmux 作用 Tmux 就是会话与窗口 "解绑" 工具,将它们彻底分离。 (1)它允许单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。...举例来说,帮助命令快捷键是 Ctrl+b ?。它用法是, Tmux 窗口中,先按下 Ctrl+b,再按下 ?,就会显示帮助信息。 然后,按下 ESC 键或 q 键,就可以退出帮助。...以下命令都是 Tmux 窗口中执行。 5.1 划分格 tmux split-window 命令用来划分格。

    16.8K83
    领券