• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            逛奔的蝸牛

            我不聰明,但我會很努力

               ::  :: 新隨筆 ::  ::  :: 管理 ::
            在程序運行的過程中,我們可能需要更改一些配置,如果配置更改得很大的話,就可能會需要程序重新啟動,但是JAVA并沒有提供給我們直接的可以重啟的方法.在這里我們將利用JDK1.5新增的ProcessBuilder來創建一個重啟進程,然后自己的進程退出.

            簡單 代碼如下:
            /*
             * Test3.java
             * 
             * Created on 2007-9-27, 11:46:31
             * 
             * To change this template, choose Tools | Templates
             * and open the template in the editor.
             
            */

            package test2;

            import java.io.File;
            import java.io.IOException;
            import java.util.Map;

            /**
             *
             * 
            @author hadeslee
             
            */
            public class Test3 {
                
            public static void restart() throws IOException{
                    
            //用一條指定的命令去構造一個進程生成器
                    ProcessBuilder pb=new ProcessBuilder("java","-jar","Test3.jar");
                    
            //讓這個進程的工作區空間改為F:\dist
                    
            //這樣的話,它就會去F:\dist目錄下找Test.jar這個文件
                    pb.directory(new File("F:\\dist"));
                    
            //得到進程生成器的環境 變量,這個變量我們可以改,
                    
            //改了以后也會反應到新起的進程里面去
                    Map<String,String> map=pb.environment();
                    Process p
            =pb.start();
                    
            //然后就可以對p做自己想做的事情了
                    
            //自己這個時候就可以退出了
                    System.exit(0);
                }
            }

            在這里我們利用了ProcessBuilder這個類,這個類是一個進程的生成類,我們在起動一個進程之前可以設置好相關的一些參數,比如工作目錄,環境變量等等,但是設置環境變的時候,有一個需要注意的地方就是你設置的環境變量不會改變系統原來的環境變量.也就是說即使你把path設為空,這個進程的運行的時候,依然是讀取系統的path找到java這個命令,否則的話,你把path設為空,java命令是不可能找得到的.
            一般來說ProcessBuilder這個類都是在萬不得已的情況下才用的,因為用了它以后,程序很難保證可移植性,除非你在每個平臺上都找到相應的命令執行相應的事情. 

            import java.io.BufferedReader;

            import java.io.File;

            import java.io.IOException;

            import java.io.InputStreamReader;


            public class ProcessBuilderTest {

                public static void main(String[] args) throws IOException {

                    ProcessBuilder pb = new ProcessBuilder("java", "Test2");

                    pb.directory(new File("/Users/Biao/Desktop/"));

                    Process p = pb.start();

                    BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));

                    String line = null;

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

                        System.out.println(line);

                    }

                    System.out.println("End");

                }

            }


            From: http://www.blogjava.net/hadeslee/archive/2007/09/27/148616.html
            posted on 2009-07-04 14:32 逛奔的蝸牛 閱讀(1320) 評論(0)  編輯 收藏 引用 所屬分類: Java
            日日躁夜夜躁狠狠久久AV| 超级碰久久免费公开视频| 久久亚洲AV无码精品色午夜| 亚洲精品tv久久久久久久久久| 无码任你躁久久久久久| 性高湖久久久久久久久| 久久96国产精品久久久| 久久亚洲精品无码播放| 亚洲香蕉网久久综合影视| 国产成人精品久久免费动漫 | 久久久久久极精品久久久| 久久综合精品国产一区二区三区| 久久青草国产精品一区| 欧美午夜A∨大片久久 | 久久久久久国产a免费观看黄色大片 | 久久精品国产亚洲AV不卡| 狠狠色综合网站久久久久久久高清 | 无码乱码观看精品久久| 久久婷婷激情综合色综合俺也去| 国产91久久综合| 精品少妇人妻av无码久久| 亚洲色欲久久久久综合网| 色噜噜狠狠先锋影音久久| 午夜不卡久久精品无码免费 | 亚洲国产一成人久久精品| 欧美亚洲另类久久综合婷婷| 久久99精品国产99久久| 亚洲AV日韩精品久久久久久 | 久久精品无码一区二区三区免费| 日产精品久久久久久久| 亚洲欧洲精品成人久久曰影片| 久久综合久久综合久久| 精品无码久久久久久午夜| 狠狠色丁香久久婷婷综合| 久久亚洲2019中文字幕| 国产午夜精品久久久久九九电影| 精品久久久噜噜噜久久久| 亚洲精品午夜国产VA久久成人| 色偷偷88欧美精品久久久| 亚洲国产香蕉人人爽成AV片久久| 99久久精品无码一区二区毛片|