Java如何连接Linux服务器并实现命令

连接Linux服务器并实现命令
1.首先准备一个Linux上的一个脚本,用于连接上后进行访问
mkdir /usr/local/tmp/test/shell  //在Linux上创建一个存放临时文件的位置
vim testForJava  //创建一个文本 里边写入脚本
echo "如果能看到这条消息说明你成功了" //这就是写入的脚本
2.然后到Java中创建一个maven工程

先引入依赖文件

   <dependency>
            <groupId>ch.ethz.ganymed</groupId>
            <artifactId>ganymed-ssh2</artifactId>
            <version>build210</version>
  </dependency>

这个依赖是用于连接linux的
然后编写代码去访问对应路径的脚本文件

public class TestUseSSh {
    private static String ip="你的服务器ip地址";
    private static int port = 22;
    private static String user = "你服务器的用户名";
    private static String password = "你服务器的密码";

    public static void main(String[] args) {

        try {
        	//先创建一个连接,传入IP地址和端口
            Connection conn = new Connection(ip,port);
            conn.connect();
            //然后传入用户名密码
            boolean b = conn.authenticateWithPassword(user, password);
            if(b==false){
                throw new IOException("连接失败!");
            }
            //需要连接 首先先创建一个通话
            Session session = conn.openSession();
            //然后输入需要执行的命令 这里的命令是去触发我们写的脚本的
            session.execCommand("sh /usr/local/tmp/test/shell/testForJava");
            //然后将返回的结果转化为输入流对象
            InputStream stdout = new StreamGobbler(session.getStdout());
			//然后将流对象读取出来
            BufferedReader br = new BufferedReader(new InputStreamReader(stdout));

            while (true){
                String line  = br.readLine();
                if(line == null){
                    break;
                }
                //打印到控制台
                System.out.println(line);
            }
            //关闭会话和连接
            session.close();
            conn.close();
        } catch (IOException e) {
            e.printStackTrace();
            //退出
            System.exit(2);
        }
    }
}
结果

在这里插入图片描述

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是Java连接Linux并执行命令的示例代码: ```java import java.io.BufferedReader; import java.io.IOException; 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.JSchException; import com.jcraft.jsch.Session; public class SSHConnection { public static void main(String[] args) { String host = "hostname"; String user = "username"; String password = "password"; String command = "ls -l"; try { JSch jsch = new JSch(); Session session = jsch.getSession(user, host, 22); session.setPassword(password); session.setConfig("StrictHostKeyChecking", "no"); session.connect(); Channel channel = session.openChannel("exec"); ((ChannelExec) channel).setCommand(command); channel.setInputStream(null); ((ChannelExec) channel).setErrStream(System.err); InputStream input = channel.getInputStream(); channel.connect(); BufferedReader reader = new BufferedReader(new InputStreamReader(input)); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } reader.close(); channel.disconnect(); session.disconnect(); } catch (JSchException | IOException e) { e.printStackTrace(); } } } ``` 此代码使用JSch库进行连接和执行命令。在示例中,我们连接到主机名为“hostname”的Linux服务器,使用用户名和密码进行身份验证,然后执行“ls -l”命令并将输出打印到控制台。您可以根据需要更改主机名,用户名,密码和命令

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值