在Java中连接Linux服务器执行命令,通常可以使用SSH协议来实现。可以使用第三方库JSch来方便地实现SSH连接和执行命令的功能。
以下是一段示例代码,可以连接到Linux服务器并执行命令:
import com.jcraft.jsch.*;
public class SSHCommandExecutor {
public static void main(String[] args) {
String host = "your-linux-server-hostname-or-ip";
String username = "your-username";
String password = "your-password";
try {
JSch jsch = new JSch();
Session session = jsch.getSession(username, host, 22);
session.setPassword(password);
// 避免第一次访问服务器时的询问,例如 "Are you sure you want to continue connecting (yes/no)?"
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
// 执行命令
String command = "ls -l";
ChannelExec channelExec = (ChannelExec) session.openChannel("exec");
channelExec.setCommand(command);
channelExec.connect();
// 获取命令执行结果
InputStream in = channelExec.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
reader.close();
// 断开连接
channelExec.disconnect();
session.disconnect();
} catch (JSchException | IOException e) {
e.printStackTrace();
需要注意的是,为了安全起见,应该避免将明文密码存储在代码中。可以使用配置文件或者其他方式来存储密码,并在运行时读取。此外,为了保证安全,建议使用公钥认证方式来替代密码认证。