import java.nio.charset.Charset;
import com.jcraft.jsch.Session;
import cn.hutool.extra.ssh.JschUtil;
import cn.hutool.extra.ssh.Sftp;
public class RemoteDeployment {
private final static String sshHost = "127.0.0.1"; //服务器地址,这里定义服务器地址
private final static int sshPort = 22; //服务器默认端口22
private final static String sshUser = "root"; //用户
private final static String sshPass = "root"; //用户密码
//项目打包的位置,自己定义路径
private final static String srcFilePath = "D:\\xxxx.jar";
//服务器放入jar运行的位置
private final static String destPath = "/home/app";
//定义执行脚本命令,我这里是已经定义了启动脚本start.sh;如果没有定义脚本,直接用java - jar xxx.jar即可
private final static String cmd = "cd /home/app && ./start.sh restart";
//main方法测试
public static void main(String[] args) {
// ssh连接,获得一个SSH会话,重用已经使用的会话
Session session = JschUtil.getSession(sshHost, sshPort, sshUser, sshPass);
// 上传jar文件
Sftp sftp = JschUtil.createSftp(session);
sftp.put(srcFilePath, destPath);
// 重启jar
String result = JschUtil.exec(session, cmd, Charset.defaultCharset());
//关闭SSH连接会话
JschUtil.close(session);
}
}
Hutool工具真的很赞