<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    自由飛翔

    我在仰望,java之上

    統計

    留言簿(2)

    我關注的blog

    閱讀排行榜

    評論排行榜

    #

    操作properties

    properties解析.....

    posted @ 2011-09-30 01:27 GavinMiao 閱讀(257) | 評論 (0)編輯 收藏

    操作xml

    待續........

    posted @ 2011-09-30 01:25 GavinMiao 閱讀(241) | 評論 (0)編輯 收藏

    轉載:JAVA異常機制介紹/如何正確的進行JAVA異常處理

     文章來源:
     作者:Maverick
     blog:http://blog.csdn.net/zhaohuabing  

    1  引言
    在JAVA語言出現以前,傳統的異常處理方式多采用返回值來標識程序出現的異常情況,這種方式雖然為程序員所熟悉,但卻有多個壞處。首先,一個API可以返回任意的返回值,而這些返回值本身并不能解釋該返回值是否代表一個異常情況發生了和該異常的具體情況,需要調用API的程序自己判斷并解釋返回值的含義。其次,并沒有一種機制來保證異常情況一定會得到處理,調用程序可以簡單的忽略該返回值,需要調用API的程序員記住去檢測返回值并處理異常情況。這種方式還讓程序代碼變得晦澀冗長,當進行IO操作等容易出現異常情況的處理時,你會發現代碼的很大部分用于處理異常情況的switch分支,程序代碼的可讀性變得很差。
    上面提到的問題,JAVA的異常處理機制提供了很好的解決方案。通過拋出JDK預定義或者自定義的異常,能夠表明程序中出現了什么樣的異常情況;而且JAVA的語言機制保證了異常一定會得到恰當的處理;合理的使用異常處理機制,會讓程序代碼清晰易懂。
    2 JAVA異常的處理機制
        當程序中拋出一個異常后,程序從程序中導致異常的代碼處跳出,java虛擬機檢測尋找和try關鍵字匹配的處理該異常的catch塊,如果找到,將控制權交到catch塊中的代碼,然后繼續往下執行程序,try塊中發生異常的代碼不會被重新執行。如果沒有找到處理該異常的catch塊,在所有的finally塊代碼被執行和當前線程的所屬的ThreadGroup的uncaughtException方法被調用后,遇到異常的當前線程被中止。
    3 JAVA異常的類層次
    JAVA異常的類層次如下圖所示:

    圖1 JAVA異常的類層次
    Throwable是所有異常的基類,程序中一般不會直接拋出Throwable對象,Exception和Error是Throwable的子類,Exception下面又有RuntimeException和一般的Exception兩類。可以把JAVA異常分為三類:
            第一類是Error,Error表示程序在運行期間出現了十分嚴重、不可恢復的錯誤,在這種情況下應用程序只能中止運行,例如JAVA 虛擬機出現錯誤。Error是一種unchecked Exception,編譯器不會檢查Error是否被處理,在程序中不用捕獲Error類型的異常;一般情況下,在程序中也不應該拋出Error類型的異常。
            第二類是RuntimeException, RuntimeException 是一種unchecked Exception,即表示編譯器不會檢查程序是否對RuntimeException作了處理,在程序中不必捕獲RuntimException類型的異常,也不必在方法體聲明拋出RuntimeException類。RuntimeException發生的時候,表示程序中出現了編程錯誤,所以應該找出錯誤修改程序,而不是去捕獲RuntimeException。
            第三類是一般的checked Exception,這也是在編程中使用最多的Exception,所有繼承自Exception并且不是RuntimeException的異常都是checked Exception,如圖1中的IOException和ClassNotFoundException。JAVA 語言規定必須對checked Exception作處理,編譯器會對此作檢查,要么在方法體中聲明拋出checked Exception,要么使用catch語句捕獲checked Exception進行處理,不然不能通過編譯。checked Exception用于以下的語義環境:

    (1) 該異常發生后是可以被恢復的,如一個Internet連接發生異常被中止后,可以重新連接再進行后續操作。
    (2) 程序依賴于不可靠的外部條件,該依賴條件可能出錯,如系統IO。
    (3) 該異常發生后并不會導致程序處理錯誤,進行一些處理后可以繼續后續操作。

    4 JAVA異常處理中的注意事項
    合理使用JAVA異常機制可以使程序健壯而清晰,但不幸的是,JAVA異常處理機制常常被錯誤的使用,下面就是一些關于Exception的注意事項:

    1. 不要忽略checked Exception
    請看下面的代碼:
    try
    {
      method1();  //method1拋出ExceptionA
    }
    catch(ExceptionA e)
    {
        e.printStackTrace();
    }
    上面的代碼似乎沒有什么問題,捕獲異常后將異常打印,然后繼續執行。事實上在catch塊中對發生的異常情況并沒有作任何處理(打印異常不能是算是處理異常,因為在程序交付運行后調試信息就沒有什么用處了)。這樣程序雖然能夠繼續執行,但是由于這里的操作已經發生異常,將會導致以后的操作并不能按照預期的情況發展下去,可能導致兩個結果:
    一是由于這里的異常導致在程序中別的地方拋出一個異常,這種情況會使程序員在調試時感到迷惑,因為新的異常拋出的地方并不是程序真正發生問題的地方,也不是發生問題的真正原因;
    另外一個是程序繼續運行,并得出一個錯誤的輸出結果,這種問題更加難以捕捉,因為很可能把它當成一個正確的輸出。
    那么應該如何處理呢,這里有四個選擇:

    (1) 處理異常,進行修復以讓程序繼續執行。
    (2) 重新拋出異常,在對異常進行分析后發現這里不能處理它,那么重新拋出異常,讓調用者處理。
    (3) 將異常轉換為用戶可以理解的自定義異常再拋出,這時應該注意不要丟失原始異常信息(見5)。
    (4) 不要捕獲異常。

    因此,當捕獲一個unchecked Exception的時候,必須對異常進行處理;如果認為不必要在這里作處理,就不要捕獲該異常,在方法體中聲明方法拋出異常,由上層調用者來處理該異常。

    2. 不要一次捕獲所有的異常
    請看下面的代碼:
    try
    {
      method1();  //method1拋出ExceptionA
        method2();  //method1拋出ExceptionB
        method3();  //method1拋出ExceptionC
    }
    catch(Exception e)
    {
        ……
    }
    這是一個很誘人的方案,代碼中使用一個catch子句捕獲了所有異常,看上去完美而且簡潔,事實上很多代碼也是這樣寫的。但這里有兩個潛在的缺陷,一是針對try塊中拋出的每種Exception,很可能需要不同的處理和恢復措施,而由于這里只有一個catch塊,分別處理就不能實現。二是try塊中還可能拋出RuntimeException,代碼中捕獲了所有可能拋出的RuntimeException而沒有作任何處理,掩蓋了編程的錯誤,會導致程序難以調試。
    下面是改正后的正確代碼:
    try
    {
      method1();  //method1拋出ExceptionA
        method2();  //method1拋出ExceptionB
        method3();  //method1拋出ExceptionC
    }
    catch(ExceptionA e)
    {
        ……
    }
    catch(ExceptionB e)
    {
        ……
    }
    catch(ExceptionC e)
    {
        ……
    }


    3. 使用finally塊釋放資源
        finally關鍵字保證無論程序使用任何方式離開try塊,finally中的語句都會被執行。在以下三種情況下會進入finally塊:
    (1) try塊中的代碼正常執行完畢。
    (2) 在try塊中拋出異常。
    (3) 在try塊中執行return、break、continue。
    因此,當你需要一個地方來執行在任何情況下都必須執行的代碼時,就可以將這些
    代碼放入finally塊中。當你的程序中使用了外界資源,如數據庫連接,文件等,必須將釋放這些資源的代碼寫入finally塊中。
    必須注意的是,在finally塊中不能拋出異常。JAVA異常處理機制保證無論在任何情況下必須先執行finally塊然后在離開try塊,因此在try塊中發生異常的時候,JAVA虛擬機先轉到finally塊執行finally塊中的代碼,finally塊執行完畢后,再向外拋出異常。如果在finally塊中拋出異常,try塊捕捉的異常就不能拋出,外部捕捉到的異常就是finally塊中的異常信息,而try塊中發生的真正的異常堆棧信息則丟失了。
    請看下面的代碼:

    Connection  con = null;
    try
    {
        con = dataSource.getConnection();
        ……
    }
    catch(SQLException e)
    {
        ……
        throw e;//進行一些處理后再將數據庫異常拋出給調用者處理
    }
    finally
    {
        try
        {
            con.close();
        }
        catch(SQLException e)
    {
        e.printStackTrace();
        ……
    }
    }
    運行程序后,調用者得到的信息如下
    java.lang.NullPointerException
     at myPackage.MyClass.method1(methodl.java:266)
    而不是我們期望得到的數據庫異常。這是因為這里的con是null的關系,在finally語句中拋出了NullPointerException,在finally塊中增加對con是否為null的判斷可以避免產生這種情況。

    4. 異常不能影響對象的狀態
    異常產生后不能影響對象的狀態,這是異常處理中的一條重要規則。 在一個函數
    中發生異常后,對象的狀態應該和調用這個函數之前保持一致,以確保對象處于正確的狀態中。
    如果對象是不可變對象(不可變對象指調用構造函數創建后就不能改變的對象,即
        創建后沒有任何方法可以改變對象的狀態),那么異常發生后對象狀態肯定不會改變。如果是可變對象,必須在編程中注意保證異常不會影響對象狀態。有三個方法可以達到這個目的:
    (1) 將可能產生異常的代碼和改變對象狀態的代碼分開,先執行可能產生異常的代碼,如果產生異常,就不執行改變對象狀態的代碼。
    (2) 對不容易分離產生異常代碼和改變對象狀態代碼的方法,定義一個recover方法,在異常產生后調用recover方法修復被改變的類變量,恢復方法調用前的類狀態。
    (3) 在方法中使用對象的拷貝,這樣當異常發生后,被影響的只是拷貝,對象本身不會受到影響。

    5. 丟失的異常
    請看下面的代碼:
    public void method2()
    {
    try
    {
        ……
        method1();  //method1進行了數據庫操作
    }
    catch(SQLException e)
    {
        ……
        throw new MyException(“發生了數據庫異常:”+e.getMessage);
    }
    }
    public void method3()
    {
        try
    {
        method2();
    }
    catch(MyException e)
    {
        e.printStackTrace();
        ……
    }
    }
    上面method2的代碼中,try塊捕獲method1拋出的數據庫異常SQLException后,拋出了新的自定義異常MyException。這段代碼是否并沒有什么問題,但看一下控制臺的輸出:
    MyException:發生了數據庫異常:對象名稱 'MyTable' 無效。
    at MyClass.method2(MyClass.java:232)
    at MyClass.method3(MyClass.java:255)
    原始異常SQLException的信息丟失了,這里只能看到method2里面定義的MyException的堆棧情況;而method1中發生的數據庫異常的堆棧則看不到,如何排錯呢,只有在method1的代碼行中一行行去尋找數據庫操作語句了,祈禱method1的方法體短一些吧。
    JDK的開發者們也意識到了這個情況,在JDK1.4.1中,Throwable類增加了兩個構造方法,public Throwable(Throwable cause)和public Throwable(String message,Throwable cause),在構造函數中傳入的原始異常堆棧信息將會在printStackTrace方法中打印出來。但對于還在使用JDK1.3的程序員,就只能自己實現打印原始異常堆棧信息的功能了。實現過程也很簡單,只需要在自定義的異常類中增加一個原始異常字段,在構造函數中傳入原始異常,然后重載printStackTrace方法,首先調用類中保存的原始異常的printStackTrace方法,然后再調用super.printStackTrace方法就可以打印出原始異常信息了。可以這樣定義前面代碼中出現的MyException類:
    public class MyExceptionextends Exception
    {
        //構造函數
        public SMException(Throwable cause)
        {
            this.cause_ = cause;
        }

        public MyException(String s,Throwable cause)
        {
            super(s);
            this.cause_ = cause;
        }
        //重載printStackTrace方法,打印出原始異常堆棧信息
        public void printStackTrace()
        {
            if (cause_ != null)
            {
                cause_.printStackTrace();
            }
            super.printStackTrace(s);
        }

        public void printStackTrace(PrintStream s)
        {
            if (cause_ != null)
            {
                cause_.printStackTrace(s);
            }
            super.printStackTrace(s);
        }

        public void printStackTrace(PrintWriter s)
        {
            if (cause_ != null)
            {
                cause_.printStackTrace(s);
            }
            super.printStackTrace(s);
        }
         //原始異常
         private Throwable cause_;
    }

    6. 不要使用同時使用異常機制和返回值來進行異常處理
    下面是我們項目中的一段代碼
    try
    {
        doSomething(); 
    }
    catch(MyException e)
    {
    if(e.getErrcode == -1)
    {
        ……
    }
    if(e.getErrcode == -2)
    {
       ……
    }
    ……
    }
    假如在過一段時間后來看這段代碼,你能弄明白是什么意思嗎?混合使用JAVA異常處理機制和返回值使程序的異常處理部分變得“丑陋不堪”,并難以理解。如果有多種不同的異常情況,就定義多種不同的異常,而不要像上面代碼那樣綜合使用Exception和返回值。
    修改后的正確代碼如下:
    try
    {
        doSomething();  //拋出MyExceptionA和MyExceptionB
    }
    catch(MyExceptionA e)
    {
    ……
    }
    catch(MyExceptionB e)
    {
        ……
    }


    7. 不要讓try塊過于龐大
    出于省事的目的,很多人習慣于用一個龐大的try塊包含所有可能產生異常的代碼,
    這樣有兩個壞處:
    閱讀代碼的時候,在try塊冗長的代碼中,不容易知道到底是哪些代碼會拋出哪些異常,不利于代碼維護。
    使用try捕獲異常是以程序執行效率為代價的,將不需要捕獲異常的代碼包含在try塊中,影響了代碼執行的效率。

    posted @ 2011-09-30 01:08 GavinMiao 閱讀(353) | 評論 (0)編輯 收藏

    MyEclipse添加注釋模板

         摘要: 參考文章:http://apps.hi.baidu.com/share/detail/34719991  打開MyEclipse1windows-preferences-Java-Code style-Code Templates2然后導入就行了3 注釋模板的xml文件解釋:例子:<?xml version="1.0" encoding="UTF-8"?><t...  閱讀全文

    posted @ 2011-09-29 19:59 GavinMiao 閱讀(4153) | 評論 (0)編輯 收藏

    ActionMessage與ActionError

    參考文章:http://hi.baidu.com/develop_skill/blog/item/e09b2d8664cddf2dc75cc36b.html

     如果是想獲取error的話,name = org.apache.struts.action.ERROR
     如果是想獲取message的話, name = org.apache.struts.action.ACTION_MESSAGE

    1.src目錄下新建屬性文件HtmlErrors.properties,里面有一些key=walue
    2.
    在struts-config.xml中加入 <message-resources key="HtmlErrors" parameter="HtmlErrors"/>
    3.
    在action類中聲明ActionMessages 屬性,并且在setServlet方法 中初始化之 messages = new ActionMessages();
    在execute中,添加message:
    messages.add("message",new ActionMessage("key")); this.saveErrors(request,messages);//注意此處必須是saveErrors,用saveMessages無效
    4.
    在jsp文件中加入:
    <logic:messagesPresent> <html:errors property="message" bundle="HtmlErrors"> </html:errors> </logic:messagesPresent>

    ActionMessages以一個HashMap存儲ActionMessage.Map中的key是一個標識,其對應的value是一個List對象,所有的ActionMessage存儲在List中.也就是說key標識了一組ActionMessage.

    • ActionMessage 
      • ActionMessage(String key)
        該方法接受一個字符串,字符串是在資源文件種配置的key值,必須在配置文件中進行相關配置.
      • ActionMessage(String key,Object value)
        ActionMessage(String key,Object value0,Object value1)
        ActionMessage(String key,Object value0,Object value1,Object value2)
        ActionMessage(String key,Object value0,Object value1,Object value2,Object value3)
        上面4個方法第一個參數同樣是資源文件中配置的key值,同樣必須在配置文件中進行相關配置.后面的參數為資源文件中key所對應的信息中需要的參數
      • ActionMessage(String key,Object[] values)
        這種方法第一個參數同上,第二個參數接受一個Object數組,其中保存key在資源文件中對應信息需要的參數.
      • ActionMessage(String msg,false 這個方法顯示自定義消息,即消息輸出內容為msg。
    • ActionMessages
      • ActionMessages.add(String property,ActionMessage message)
        第一個參數property對應于<html:messages>標簽中的property屬性
        , property的值一般采用ActionMessages類中的靜態常量ActionMessages.GLOBAL_MESSAGE,也可以自己定義一個key.
      • 該方法執行時,先判斷ActionMessages中有沒有該key,如果沒有就新添加對key-List鍵值對;如果有同樣的key,就先獲取該key對應的Value并轉換為List對象,然后將(ActionMessage)message添加進List對象中.
      • ActionMessages.add(ActionMessages ams)
        該方法將參數中保存的ActionMessage合并到調用ActionMessages中.
    • Action及其所有子類
      • addMessages(HttpServletRequest request,ActionMessages messages)
        該方法首先檢查request對象中是否有ActionMessages對象,如果有對象,則將接收的ActionMessages合并到request中,如果沒有,用setAttribute(Globals.MESSAGE_KEY,messages)方法將messages添加進去.如果一個Action中需要顯示多條錯誤信息,推薦使用該方法.
        (Globals.MESSAGE_KEY ="org.apache.struts.action.ACTION_MESSAGE")
      • saveMessages(HttpServletRequest request,ActionMessages messages)
        該方法保存messages時,如果request中已經有一個ActionMessages對象,則用新的覆蓋原有的.不推薦使用該方法,該方法容易發生丟失信息的情況.
      • addErrors()和saveErrors()
        這兩個方法與addMessages()和saveMessages()相似,不過在HttpServletRequest.setAttribute()時的參數不一樣,這兩個方法是:setAttribute(Globals.ERROR_KEY,messages)添加的.(Globals.ERROR_KEY = "org.apache.struts.action.ERROR")
               在request中添加的ActionMessages在頁面顯示時,用<html:messages>標簽進行顯示, <html:messages>
    id必須指定id屬性.<html:messages>標簽作用是遍歷ActionMessages對象中的所有     ActionMessage.類似<logic:iterator>,每次循環都定義一個名稱為id指定的頁面范圍的bean,然后用     <bean:write>標簽進行輸出.
    bundle綁定一個MessageResources,不指定的時候從上下文中配置的資源中檢索.一般不指定bundle屬性.
    locale指定本地化信息,不指定時和Session的本地化信息相同,一般不用指定.
    name指定ActionMessages對象在request中的key.不指定時,默認用GLOBALS.ERROR_KEY="org.apache.struts.action.ERROR",用Action.addMessages()方法添加的信息將不被顯示,用Action.addErrors()方法添加的信息才會被顯示.一般不指定.
    property指定哪些ActionMessage將被顯示,與ActionMessages.addMessage(String property,ActionMessage am)中的property參數相對應.不指定的時候顯示所有信息.
    header指定一個資源信息key,在顯示ActionMessages前打印到頁面上,可選.
    footer指定一個資源信息key,在顯示完ActionMessages后打印到頁面上,可選.
    message

    取值為true/false,默認為false.為false或不指定時,在request中查找key=Globals.ERROR_KEY的ActionMessages bean.當該屬性設置為true時,在request中查找key=Globals.MESSAGE_KEY的ActionMessages bean,同時name屬性的值將被忽略. 
    注:true顯示 this.addMessages(request,messages); 里面的消息,
    false顯示 this.addErrors(request, messages)的消息。

     <html:messages>的message屬性如果設定為true,會輸出ActionMessages中所儲存的訊息,Message表示一個提示訊息,也許使用者輸入了不正確的資訊,例如在輸入名稱與密碼時打錯了字,程式要提示使用者他們輸入了不正確的訊息。 
        <html:messages>的message屬性如果不設定為true,會輸出ActionErrors中所儲存的訊息,Error代表的是一個操作方面的錯誤,例如錯誤操作導致使用者名稱或密碼為空(當然也許也是故意的)。

    示例:(struts 1.3)

    ActionForm中:

    ActionMessages messages = new ActionMessages();
        messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("messages.username.required"));
        addMessages(request,messages);
       
        ActionErrors errors = new ActionErrors();
        errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("errors.username.required"));
        addErrors(request,errors);
       
        return mapping.getInputForward();

    ===========================================================================

    JSP頁面顯示:

    <html:messages id="outMessage" message="true" header="messages.header" footer="messages.footer">
        <bean:write name="outMessage"/>
       </html:messages>
       <html:messages id="outError" message="false" header="errors.header" footer="errors.footer">
        <bean:write name="outError"/>
       </html:messages>

    ============================================================================

    ApplicationResources.properties配置文件:

    messages.header=<h2><font color="red">
    messages.footer=</font></h2>
    messages.username.required=ActionMessage:the name is null

    errors.header=<h2><font color="blue">
    errors.footer=</font></h2>
    errors.username.required=ActionError:the name is null


    posted @ 2011-09-29 11:59 GavinMiao 閱讀(1232) | 評論 (0)編輯 收藏

    異常積累:java.lang.IllegalArgumentException

    ERROR - Error:
    java.lang.IllegalArgumentException: Invalid property name 'userInfoContext'
    at org.apache.struts.action.DynaActionForm.getDynaProperty(DynaActionForm.java:
    603)
    ---》錯誤行:UserInfoContext userInfoContext = (UserInfoContext) domainForm.get("userInfoContext");
    原因:struts.xml中有兩個UserInfoContext類,引用錯誤。
    參考文章:http://hi.baidu.com/9prior/blog/item/9cabe7fba2cc9e1f6c22eb6c.html
    這種異常也有可能是:actionform中的某個屬性在form-bean的form-property沒有配置。

    posted @ 2011-09-28 15:18 GavinMiao 閱讀(511) | 評論 (0)編輯 收藏

    fmt:message與fmt:fmt:setBundle

    參考文章:

    http://cainwise.iteye.com/blog/369836

     
    <fmt:message
    > 
    標簽屬性和說明 

     

     

    屬性
    描述
    key
    資源配置文件的指定
    bundle
    若使用 <fmt:setBundle> 保存了資源配置文件,該屬性就可以從保存的資源配置文件中進行查找
    var
    將顯示信息保存為一個變量
    scope
    變量的作用范圍

     

    <fmt:bundle>  <fmt:setBundle> 標簽屬性和說明 

     

     

    屬性
    描述
    basename
    資源配置文件的指定,只需要指定文件名而無須擴展名,二組標簽共有的屬性
    var
     <fmt:setBundle> 獨有的屬性,用于保存資源配置文件為一個變量
    scope
     變量的作用范圍

     

    eg1:
    1. <body>  
    2.   <%request.setAttribute("language","zh_CN"); %>//這里可以從客戶端選擇的語言那里獲取  
    3.     <fmt:setLocale value="${language}"/>//這里是設置顯示頁面的語言  
    4.     <fmt:setBundle basename="message" var="messages"/>//這里是獲取到國際化文件  
    5.         <fmt:bundle basename="message">  
    6.             <fmt:message key="com.name"/>//獲取key第一種方式  
    7.             <br>  
    8.             <fmt:message key="com.name" bundle="${messages}"></fmt:message>//獲取key第二種方式  
    9.         </fmt:bundle>  
    10.   </body>  
















    posted @ 2011-09-28 14:08 GavinMiao 閱讀(5092) | 評論 (0)編輯 收藏

    用命令打開windows常用軟件

    mspaint 畫圖板 
    mstsc 遠程桌面連接
    notepad 打開記事本
    winmsd.exe 查看系統信息
    Sndvol32 音量控制程序
    diskmgmt.msc 磁盤管理器
    cleanmgr 垃圾整理
    conf 啟動netmeeting聊天工具
    cleanmgr.exe 磁盤清理 
    calc.exe 計算器
    regedt32 注冊表編輯器

    posted @ 2011-09-28 09:40 GavinMiao 閱讀(303) | 評論 (0)編輯 收藏

    電腦使用技巧:windows自帶定時關機

    轉載:http://bbs.yhcgo.com/read.php?tid-77128.html

    1.Windows XP的定時關機命令是由Shutdown.exe程序來控制的,位于Windows\System32文件夾中。
    如果想讓Windows 2000也實現同樣的效果,可以把Shutdown.exe復制到系統目錄下。

    系統根目錄:C:\windows\下;
    2.winows+r打開“運行”輸入框,然后輸入以下命令:
    at 22:00 Shutdown -s           --->無倒計時框,到
    22:00點提示關機
    shutdown.exe -s -t 3600 -->60分鐘后,以
    倒計時的方式關機
    Shutdown -s -t 1320 -->
    指定系統在22分鐘后自動關閉
    3.
    如果想取消的話,可以在運行中輸入“shutdown -a”。另外輸入“shutdown -i”,則可以打開設置自動關機對話框,對自動關機進行設置。 
    4.
    Shutdown.exe的參數:
    -r:關機并重啟
    -t 時間:設置關機倒計時
    “-s”就表示關閉本地計算機
    “-a”表示取消關機操作
    -i:顯示圖形用戶界面,但必須是Shutdown的第一個選項

    posted @ 2011-09-28 09:16 GavinMiao 閱讀(550) | 評論 (0)編輯 收藏

    J2EE學習網址積累

        只有注冊用戶登錄后才能閱讀該文。閱讀全文

    posted @ 2011-09-27 16:29 GavinMiao 閱讀(99) | 評論 (0)編輯 收藏

    僅列出標題
    共14頁: First 上一頁 3 4 5 6 7 8 9 10 11 下一頁 Last 
    主站蜘蛛池模板: 亚洲日本va中文字幕久久| 国产免费爽爽视频免费可以看| 在线观看午夜亚洲一区| 免费在线观看自拍性爱视频| 免费看AV毛片一区二区三区| 成人亚洲国产精品久久| 亚洲av手机在线观看| 一个人免费观看视频在线中文| 浮力影院亚洲国产第一页| 国产综合免费精品久久久 | 亚洲Av永久无码精品黑人| 成年男女免费视频网站| 亚洲av无码专区在线观看下载 | 97在线视频免费公开视频| 亚洲精品午夜无码电影网| 日韩精品在线免费观看| 亚洲成无码人在线观看| 成人毛片免费观看视频在线| 色天使亚洲综合一区二区| 国产精品V亚洲精品V日韩精品 | 亚洲五月激情综合图片区| 91久久青青草原线免费| 4338×亚洲全国最大色成网站| www在线观看免费视频| 亚洲2022国产成人精品无码区| 青青草97国产精品免费观看 | 久久亚洲国产成人影院网站| 精品国产免费一区二区三区香蕉| 亚洲网红精品大秀在线观看| 久久精品成人免费国产片小草 | 国产精品亚洲自在线播放页码| 成人永久免费高清| 中文字幕亚洲综合久久| 成年美女黄网站色大免费视频| 狠狠热精品免费观看| 亚洲a一级免费视频| 日本免费人成视频播放| 怡红院免费全部视频在线视频| 亚洲一区二区三区高清视频| 亚洲欧洲久久av| 美女视频黄的全免费视频网站|