中文字幕亚洲第一精品|精品国产免费一区二区|久久婷婷五月六月综合版|中文字幕熟妇久久久人妻|久久综合精品国产一区无码|国产成人精品永久免费视频|午夜亚洲国产精品理论片a级|久久精品一区二区三区无码护土

 訪問手機(jī)版  

Linux常用命令|Linux培訓(xùn)學(xué)習(xí)|考試認(rèn)證|工資待遇與招聘,認(rèn)準(zhǔn)超級(jí)網(wǎng)工!

招聘|合作 登陸|注冊

網(wǎng)絡(luò)工程師培訓(xùn)

當(dāng)前位置:網(wǎng)絡(luò)工程師 > 技術(shù)課程 > linux > 熱點(diǎn)關(guān)注 > linux常用命令

使用java代碼執(zhí)行l(wèi)inux命令

時(shí)間:2019-06-15

linux 命令_linux重啟命令_linux命令

前提:

java代碼是在windows下面寫的,要打包放到linux下面運(yùn)行,并且執(zhí)行某個(gè)腳本。

java代碼:

       try {
          // 起作用的代碼其實(shí)就下面這一行, 參數(shù)是linux中要執(zhí)行的代碼 Runtime.getRuntime().exec("sh generator.sh").waitFor(); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); }

轉(zhuǎn)自:https://www.cnblogs.com/tohxyblog/p/6501396.html

c. 使用腳本調(diào)用別的腳本,比如有三個(gè)腳本:run1.sh,run2.sh,run3.sh,假設(shè)這三個(gè)腳本都使用了cat、grep等命令,那么它們直接放在crontab中是不會(huì)被成功執(zhí)行的,這時(shí)候我們可以寫個(gè)run.sh,在run.sh中調(diào)用run1.sh,run2.sh,run3.sh,這樣就不需要考慮export環(huán)境變量的問題,因?yàn)閞un.sh并沒有使用系統(tǒng)命令,而run.sh調(diào)用run1.sh的時(shí)候已經(jīng)不是crontab在管理了,所以會(huì)讀取用戶的環(huán)境變量。com對象就是一些具有特定函數(shù)功能項(xiàng)程序模塊,他們一般以ocx或者dll作為擴(kuò)展名,你只要找到包含有你需要的功能的模塊文件,并在腳本中規(guī)范的引用,就可以實(shí)現(xiàn)特定的功能,也就是說vbs腳本就是調(diào)用現(xiàn)成的“控件”作為對象,用對象的屬性和方法實(shí)現(xiàn)目的,完全免去了編寫代碼、設(shè)計(jì)算法等麻煩。我這樣理解,com對象就是一些具有特定函數(shù)功能項(xiàng)程序模塊,他們一般以ocx或者dll作為擴(kuò)展名,你只要找到包含有你需要的功能的模塊文件,并在腳本中規(guī)范的引用,就可以實(shí)現(xiàn)特定的功能,也就是說vbs腳本就是調(diào)用現(xiàn)成的“控件”作為對象,用對象的屬性和方法實(shí)現(xiàn)目的,完全免去了編寫代碼、設(shè)計(jì)算法等等麻煩。

linux命令_linux重啟命令_linux 命令

深入:

Process的幾種方法

1、destroy():殺掉子進(jìn)程

2、exitValue():返回子進(jìn)程的出口值,值0表示正常終止

3、getErrorStream():獲取子進(jìn)程的錯(cuò)誤流

4、getInputStream():獲取子進(jìn)程的輸入流

linux重啟命令_linux命令_linux 命令

5、getOutputStream():獲取子進(jìn)程的輸出流

6、waitFor():導(dǎo)致當(dāng)前線程等待,如有必要,一直要等到由該P(yáng)rocess對象表示的進(jìn)程已經(jīng)終止。如果已終止該子進(jìn)程,此方法立即返回。如果沒有終止該子進(jìn)程,調(diào)用的線程將被阻塞,知道退出子進(jìn)程,根據(jù)管理,0表示正常終止。

注意:在Java中,調(diào)用runtime線程執(zhí)行腳本是非常消耗資源的,所以切記不要頻繁使用!

c. 使用腳本調(diào)用別的腳本,比如有三個(gè)腳本:run1.sh,run2.sh,run3.sh,假設(shè)這三個(gè)腳本都使用了cat、grep等命令linux命令,那么它們直接放在crontab中是不會(huì)被成功執(zhí)行的,這時(shí)候我們可以寫個(gè)run.sh,在run.sh中調(diào)用run1.sh,run2.sh,run3.sh,這樣就不需要考慮export環(huán)境變量的問題,因?yàn)閞un.sh并沒有使用系統(tǒng)命令,而run.sh調(diào)用run1.sh的時(shí)候已經(jīng)不是crontab在管理了,所以會(huì)讀取用戶的環(huán)境變量。式的前一部分是對時(shí)間的設(shè)定,后面一部分是要執(zhí)行的命令,如果要執(zhí)行的命令太多,可以把這些命令寫到一個(gè)腳本里面,然后在這里直接調(diào)用這個(gè)腳本就可以了,調(diào)用的時(shí)候記得寫出命令的完整路徑。構(gòu)造handlerthread類的對象mhandlerthread,這樣生成一個(gè)子線程可以調(diào)用new myhandler(mhandlerthread.getlooper())來獲取子線程的handler,另一個(gè)子線程發(fā)消息,收到消息的就是子線程而不是主線程了。

所以兩個(gè)線程訪問同一塊資源時(shí),需要考慮線程同步問題,即其中一個(gè)線程操作改資源時(shí),其他線程不能訪問該資源,只能等待linux命令,該線程執(zhí)行結(jié)束之后,其他線程才能對該資源進(jìn)行訪問。并增加以下命令:等待線程,強(qiáng)制結(jié)束線程,關(guān)閉線程句柄。并增加以下命令:等待線程, 強(qiáng)制結(jié)束線程, 關(guān)閉句柄。

private static Process p = null;
p = Runtime.getRuntime().exec("notepad.exe");
p.waitFor();
System.out.println("---------------我被執(zhí)行了");

以上代碼中,打開windows中記事本,如果我們不手動(dòng)關(guān)閉記事本,那么輸出語句就不會(huì)執(zhí)行,這點(diǎn)事需要理解的。

 上一個(gè)教程:Linux下的解壓命令