最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java程序如何啟動(dòng)新的進(jìn)程

 更新時(shí)間:2025年05月16日 08:47:14   作者:程序黑板報(bào)  
這篇文章主要介紹了java程序如何啟動(dòng)新的進(jìn)程問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一般通過java啟動(dòng)操作系統(tǒng)進(jìn)程有兩種方式

1.通過Runtime.getRuntime啟動(dòng)

Runtime.getRuntime().exec());

exec有三個(gè)重載方法,分別可以設(shè)置相應(yīng)的命令,系統(tǒng)屬性,和新的進(jìn)程的工作目錄

2.通過ProcessBuilder啟動(dòng)

ProcessBuilder是java 1.5后推薦使用的方式,他擁有更多的處理能力。

如:

  • 獲取進(jìn)程的執(zhí)行信息,包括標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯(cuò)誤輸出;
  • 設(shè)置當(dāng)前工作目錄;
  • 改變環(huán)境參數(shù)等;
			ProcessBuilder pb = new ProcessBuilder();
			List<String> cmds = new ArrayList<String>();

			cmds.add("/bin/sh");
			cmds.add("/data/soft/java");
			cmds.add("test.sh");
			pb.command(cmds);
			pb.redirectOutput(ProcessBuilder.Redirect.INHERIT);
			pb.redirectError(ProcessBuilder.Redirect.INHERIT);
			pb.redirectInput(ProcessBuilder.Redirect.INHERIT);
			pb.directory(new File(getWorkerDir()));
			pb.start();

調(diào)用start()方法后可以返回一個(gè)Process類,

該類擁有結(jié)構(gòu)如下:

public abstract class Process {

    //返回連接子進(jìn)程正常輸入的輸出流
    abstract public OutputStream getOutputStream();

    //返回連接子進(jìn)程輸出的輸入流
    abstract public InputStream getInputStream();

    //返回連接子進(jìn)程異常輸出的輸入流
    abstract public InputStream getErrorStream();

    //促使當(dāng)前線程等待,直至只當(dāng)進(jìn)程已經(jīng)結(jié)束。子進(jìn)程結(jié)束時(shí)函數(shù)立即返回
    abstract public int waitFor() throws InterruptedException;

    //返回子進(jìn)程結(jié)束時(shí)候的退出值
    abstract public int exitValue();

    //殺死子進(jìn)程
    abstract public void destroy();
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

丹棱县| 芦山县| 江油市| 博白县| 纳雍县| 启东市| 南汇区| 冷水江市| 东方市| 崇义县| 达尔| 内丘县| 诏安县| 通渭县| 三穗县| 龙海市| 南召县| 莱芜市| 灵寿县| 淮滨县| 平武县| 洛宁县| 綦江县| 金华市| 彭州市| 琼结县| 丹巴县| 芜湖市| 永昌县| 桃园市| 桦甸市| 石景山区| 高陵县| 邵武市| 唐河县| 抚宁县| 峡江县| 咸丰县| 修文县| 民丰县| 和顺县|