1. 程式人生 > >Java _ Java 執行Linux 指令

Java _ Java 執行Linux 指令

核心程式碼:

    Process process = Runtime.getRuntime().exec(cmd);
    InputStreamReader ir = new InputStreamReader(process.getInputStream());
    LineNumberReader input = new LineNumberReader(ir);

    String line;
    while ((line = input.readLine()) != null) {
        System.out.println(line);
    }


完整示例程式碼:(封裝的共有方法):

package test.szh.util;

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;

public class RunCommand {

	public synchronized static String runCommands(String[] args)
			throws IOException, InterruptedException {

		String cmd = "";

		if (args == null || args.length == 0) {
			System.out.println("請輸入命令列引數");
		} else {
			for (int i = 0; i < args.length; i++) {
				cmd += args[i] + " ";
			}
		}

		StringBuffer result = null;
		try {

			Process process = Runtime.getRuntime().exec(cmd);
			InputStreamReader ir = new InputStreamReader(
					process.getInputStream());
			LineNumberReader input = new LineNumberReader(ir);

			String line;
			result = new StringBuffer();

			while ((line = input.readLine()) != null) {
				result.append(line + "\n");
				System.out.println(line);

			}

		} catch (java.io.IOException e) {
			System.err.println("IOException " + e.getMessage());
		}

		return result.toString();

	}

	public static void main(String[] args) throws IOException,
			InterruptedException {
		String[] cmds = { "curl http://192.168.3.14:8078/kafka/detail -d topic=clicki_track_topic&consumer=clicki_track_storm_base" };
		System.out.println(runCommands(cmds));
	}

}
輸出:



相關推薦

Java _ Java 執行Linux 指令

核心程式碼: Process process = Runtime.getRuntime().exec(cmd); InputStreamReader ir = new Inp

使用java代碼執行linux命令

and linux env file 沒有 子線程 catch tin interrupt 前提: java代碼是在windows下面寫的,要打包放到linux下面運行,並且執行某個腳本。 java代碼:        try {          // 起作用的代碼其實

如何通過ssh登入伺服器執行linux指令-ganymed的簡單使用(一)

ganymed是用java實現的一個ssh協議包.通過他可以直接在java程式中連線ssh伺服器並執行指令. 使用步驟如下: 1.建立Connection:   Connection connection = new Connection("192.168.73.246")

linux中啟動 java -jar 後臺執行程式 linux中啟動 java -jar 後臺執行程式

ps -ef | grep java  查詢java 端口占用   linux中啟動 java -jar 後臺執行程式   直接用java -jar xxx.jar,當退出或關閉shell時,程式就會停止掉。以下方法可讓jar執行後一直在後臺執行。

java實現 連線遠端伺服器 執行Linux命令 並獲取 執行返回的結果

情景:要通過java連線伺服器,並執行指令碼命令 得到 返回的結果 package com.ideal.openapi.util; import com.jcraft.jsch.*; import org.slf4j.Logger; import org.slf4j.LoggerFacto

java零碎要點012---linux Centos下編譯、執行、除錯java程式

   JAVA技術交流QQ群:170933152  有時候要除錯一些東西,適不適用Linux,還是需要在Linux上弄啊 Linux上步驟: 安裝jdk 安裝以後vi Test.java 然後編寫程式: import java.io.File;

java執行linux和windows指令碼工具類

我們有時候會 在java程式碼中,去執行一個linux shell指令碼或者windows觸發執行一個.bat指令碼 本文章,會寫一個通用的指令碼工具類,通過這個工具類,可以在java程式碼中,呼叫linux shell指令碼,或者window .bat指令碼。 比

Java 執行linux scp 遠端獲取檔案和上傳

需要的jar包:ganymed-ssh2-build210.jar import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import

基因資料處理119之java呼叫SSW在linux執行

基因資料處理系列 1.解釋 測試自帶Example: [email protected]:~/xubo/tools/Complete-Striped-Smith-Waterman

0 LinuxJava使用ProcessBuilder執行命令與直接Bash執行命令之間的不同(環境變數方面)

0 問題發生 xiaojietest.java package tasks; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter;

Java基礎_執行緒篇_第一篇)】繼承Thread;實現runnable;sleep、wait用法和區別;Thread和Runnable區別;執行緒停止

一、執行緒兩種實現 1.繼承Thread類: (1)【直接在主類繼承】 package org; // 繼承 Thread 類 public class TestThreadofExt extends Thread { private static int count =

Java實現遠端連線Linux執行命令

需要的jar包 <dependency> <groupId>ch.ethz.ganymed</groupId> <artifactId>ganymed-ssh2</art

java類中執行指令碼或命令(比如Linux下的指令碼命令等)

可以使用java中的ProcessBuilder執行本地命令或指令碼等工作: 以下是一個簡單的使用java呼叫本地python指令碼的例子。從某工程程式碼中整理出來的,未封裝,僅供參考。 JAVA 程式碼: List<String> commands=

Java中通過jsch來連線遠端伺服器執行linux命令

有時候你可能需要通過程式碼來控制執行linux命令實現某些功能。 針對這類問題可以使用JSCH來實現,具體程式碼如下: public class CogradientImgFileManager{ private static final Logg

java網路程式設計:9、基於TCP的socket程式設計(二)伺服器端迴圈監聽接收多個客戶端_執行緒伺服器程式

宣告:本教程不收取任何費用,歡迎轉載,尊重作者勞動成果,不得用於商業用途,侵權必究!!! 文章目錄 一、核心程式碼編寫 1、伺服器端程式的編寫 2、客戶端程式的編寫 3、測試列印輸出 二、系列文章(java網路程式設計) 上篇講了基於tcp的程式設計的一些基礎知識

linux的shell命令檢測某個java程式是否執行

linux下的shell命令: ps -ef |grep java|grep “ ” " "l裡面寫上你需要grep查詢的java程式名字應該就可以了 轉自:http://www.jb51.net/article/83197.htm

Java技術_基礎技術(0003)_執行順序詳解+例項(阿里面試題)+詳細講解+流程圖

基礎技術: 對於java類各個成員的執行順序,現拿出阿里的面試題作為樣例(例子非常好,是用心出的題),在這裡重新說明一下java類執行順序的原則。 原始碼下載(包含題、結果、分析過程)

sshxcute --java遠端執行linux/unix命令的工具類

原文地址:https://www.ibm.com/developerworks/cn/opensource/os-sshxcute/ ----------------------------------------------------------------------

JAVA利用SSH2登入LINUX執行命令

import ch.ethz.ssh2.Connection; import ch.ethz.ssh2.Session; import ch.ethz.ssh2.StreamGobbler; import cn.com.bsfit.frms.portal.util.Remo

java 執行linux命令或shell指令碼方法

一.容易出錯的地方之一,執行ps等命令要注意到jvm呼叫的linux命令也是一個程序 背景:第1,2,3,4行程式碼都可以完成java 執行shell指令碼的任務,第2,3,4行程式碼的陣列中第三個引數可以是指令碼名,也可以是cd / ls / chown 這種命令。 問題