中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      java程序中如何調用linux命令

      時間:2024-08-27 19:47:34 JAVA認證 我要投稿
      • 相關推薦

      java程序中如何調用linux命令

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

        Java調用shell

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

        其中的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

        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)

        throws IOException

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

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

        代碼如下:

        try

        String commands = "ls -l";

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

        // for showing the info on screen

        InputStreamReader ir=new

        InputStreamReader(process.getInputStream());

        BufferedReader input = new BufferedReader (ir);

        String line;

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

        System.out.println(line);

        }//end try

        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 時,用如下代碼

        try

        String[] commands = new

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

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

        InputStreamReader ir=new

        InputStreamReader(process.getInputStream());

        BufferedReader input = new BufferedReader (ir);

        String line;

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

        System.out.println(line);

        }//end try

        catch (java.io.IOException e){

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

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

        Runtime.getRuntime().exec(command)

        但是這樣執行時沒有任何輸出,因為調用 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 “};

        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) {

        sb.append(line).append(”\n”);

        }

        String result = sb.toString();

        System.out.println(result);

        } catch (Exception e) {

        e.printStackTrace();

        }

      【java程序中如何調用linux命令】相關文章:

      java調用cmd命令01-29

      java開發必會的Linux命令03-24

      Linux中的more命令解讀202405-06

      linux命令中su和sudo區別03-24

      如何編譯java程序03-05

      linux常用基本命令(文件處理命令)11-29

      Linux中常用操作命令03-06

      Linux硬件信息命令大全03-24

      Linux日常使用命令大全03-27

      主站蜘蛛池模板: 宝兴县| 亚洲色无码中文字幕| 久久精品女人天堂AV一个| 亚洲天堂av社区久久| 亚洲美腿丝袜福利一区| 南皮县| 衡山县| 黔江区| 定结县| 国产精品一区二区午夜久久| 一本久久综合亚洲鲁鲁五月夫| 国产美女高潮流白浆在线观看| 高清国产亚洲va精品| 国产va在线播放| 亚洲大片中文字幕久久| 亚洲av成人在线网站| 长海县| 国产91九色在线观看| 商城县| 嵊泗县| 星座| 日韩中文字幕在线乱码| 日韩丝袜人妻中文字幕| 平江县| 国产成品精品午夜视频| 周宁县| 91精品啪在线看国产网站| 抚顺市| 人妻精品一区二区免费| 91在线无码精品秘 入口九色十| 国产精品久久国产三级| 老肥熟女老女人野外免费区| 久久精品国产亚洲av成人擦边| 亚洲综合久久一本久道| 国产三级精品三级男人的天堂,| 在线免费不卡av网站一区| 精品少妇人妻成人一区二区| 亚洲欧美日韩中文综合在线不卡| 亚洲国产色婷婷久久99精品91| 国产自产21区激情综合一区| 熟女丝袜av一区二区三区四区 |