linux sh命令,java如何調用linux命令_java程序中如何調用linux命令

 2023-11-12 阅读 24 评论 0

摘要:java程序中如何調用linux命令作為一個Java開發人員,有些常用的Linux命令必須掌握。即時平時開發過程中不使用Linux(Unix)或者mac系統,也需要熟練掌握Linux命令。因為很多服務器上都是Linux系統。所以,要和服務器機器交互,就要通過shell命令。本文

java程序中如何調用linux命令

作為一個Java開發人員,有些常用的Linux命令必須掌握。即時平時開發過程中不使用Linux(Unix)或者mac系統,也需要熟練掌握Linux命令。因為很多服務器上都是Linux系統。所以,要和服務器機器交互,就要通過shell命令。本文為大家分享的就是java程序中怎么調用linux命令。

Java調用shell

Java語言以其跨平臺性和簡易性而著稱,在Java里面的lang包里(java.lang.Runtime)提供了一個允許Java程序與該程序所運行的環境交互的接口,這就是Runtime類,在Runtime類里提供了獲取當前運行環境的接口。

linux sh命令。其中的exec函數返回一個執行shell命令的子進程。exec函數的具體實現形式有以下幾種:

public Process exec(String command) throws IOException

public Process exec(String command,String[] envp) throws

IOException

public Process exec(String command,String[] envp,File dir) throws

linux查看java版本、IOException

public Process exec(String[] cmdarray) throws IOException

public Process exec(String[] cmdarray, String[] envp) throws

IOException

public Process exec(String[] cmdarray, String[] envp,File dir)

centos 安裝java,throws IOException

我們在這里主要用到的是第一個和第四個函數,具體方法很簡單,就是在exec函數中傳遞一個代表命令的字符串。exec函數返回的是一個Process類型的類的實例。Process類主要用來控制進程,獲取進程信息等作用。(具體信息及其用法請參看Java doc)。

1)執行簡單的命令的方法:

代碼如下:

try

linux shell?String commands = "ls -l";

Process process = Runtime.getRuntime().exec (commands);

// for showing the info on screen

InputStreamReader ir=new

InputStreamReader(process.getInputStream());

java 命令?BufferedReader input = new BufferedReader (ir);

String line;

while ((line = input.readLine ()) != null){

System.out.println(line);

}//end try

linux基本命令的使用?catch (java.io.IOException e){

System.err.println ("IOException " + e.getMessage());

} 上面的代碼首先是聲明了一個代表命令的`字符串commands,它代表了ls -l

這個命令。之后我們用Runtime.getRuntime().exec(commands)來生成一個子進程來執行這個命令,如果這句話運行成功,則命令 ls -l 運行成功(由于沒有讓它顯示,不會顯示ls -l

的結果)。后面的流操作則是獲取進程的流信息,并把它們一行行輸出到屏幕。2)執行帶有參數的命令(尤其是參數需要用引號的)時則需要用String的數組來表示整個命令,而且要用轉義符把引號的特殊含義去除,例如我們要執行find / -name "*mysql*" -print 時,用如下代碼

linux查看java、try

String[] commands = new

String[]{"find",".","-name","*mysql*","-print"};

Process process = Runtime.getRuntime().exec (commands);

InputStreamReader ir=new

vim 上一頁下一頁、InputStreamReader(process.getInputStream());

BufferedReader input = new BufferedReader (ir);

String line;

while ((line = input.readLine ()) != null){

System.out.println(line);

linux有什么用。}//end try

catch (java.io.IOException e){

System.err.println ("IOException " + e.getMessage());

Java 可以通過 Runtime 調用Linux命令,形式如下:

Runtime.getRuntime().exec(command)

java常用linux命令、但是這樣執行時沒有任何輸出,因為調用 Runtime.exec 方法將產生一個本地的進程,并返回一個Process子類的實例(注意:Runtime.getRuntime().exec(command)返回的是一個Process類的實例)該實例可用于控制進程或取得進程的相關信息。

由于調用 Runtime.exec 方法所創建的子進程沒有自己的終端或控制臺,因此該子進程的標準IO(如stdin,stdou,stderr)都通過 Process.getOutputStream(),Process.getInputStream(), Process.getErrorStream() 方法重定向給它的父進程了。

用戶需要用這些stream來向子進程輸入數據或獲取子進程的輸出,下面的代碼可以取到 linux 命令的執行結果:

try {

String[] cmd = new String[]{”/bin/sh”, “-c”, ” ls “};

java代碼調用shell命令,Process ps = Runtime.getRuntime().exec(cmd);

BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream()));

StringBuffer sb = new StringBuffer();

String line;

while ((line = br.readLine()) != null) {

linux常用的20個命令、sb.append(line).append(”\n”);

}

String result = sb.toString();

System.out.println(result);

} catch (Exception e) {

怎么在ubuntu下安裝jdk?e.printStackTrace();

}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/172405.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息