1. 程式人生 > 其它 >Java如何連線Linux伺服器並實現命令

Java如何連線Linux伺服器並實現命令

技術標籤:linuxjavashell

連線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); } } }
結果

在這裡插入圖片描述