隨筆 - 119  文章 - 3173  trackbacks - 0
          <2007年1月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          交友莫獨酒,茅臺西鳳游。
          口干古井貢,心徜洋河流。
          稱多情杜康,趟無量雙溝。
          贊中華巍巍,無此不銷愁。

          常用鏈接

          留言簿(68)

          隨筆分類(136)

          隨筆檔案(122)

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 525585
          • 排名 - 93

          最新評論

          今天寫一個獨立于RCP項目之外的SWT小工具,需要用批處理啟動,偶寫了一個批處理沒閃DOS窗口,看得同事一愣一愣的。于是趕快把自己當年一點心得和大家分享下。

          很多朋友在WINDOWS下會用批處理去啟動自己的java程序,
          一般的寫法是
          運行class:
          java xx

          運行jar:
          java -jar xxx.jar
          但是這樣運行會有一個惡心的對話框停在那直到我們關閉程序。


          于是很多人說可以這樣
          運行class:
          start javaw xx
          運行jar:
          start javaw -jar xxx.jar??

          這種方法DOS窗口還是會一閃而過,這就算解決問題了嗎?!網上很多人說是的.
          對我們這種追求完美的人來說閃一下還是不能接受滴.

          于是終極解決方案出現了!
          那就是在批處理第一行加上@echo off

          這樣我們的批處理就變成了

          運行class:
          @echo off
          start javaw xx

          運行jar:
          @echo off
          start javaw -jar xxx.jar??


          快試試吧,絕對不閃了。哈哈哈。

          解釋一下
          ?echo off
          表示在此語句后所有運行的命令都不顯示命令行本身
          @ 表示運行時不顯示本命令行


          想當年玩D版游戲的時候,虛擬光驅還是命令行方式的,為了讓一個游戲正常運行,往往要寫很長的批處理,那時候俺這種完美主義者就認識到了@echo off 的重要性了。
          呵呵,這件事情證明了媽媽說學好DOS很重要是多么的英明偉大。

          最后懷念一下藏經閣、大草原、老兵。
          N年沒買過碟子的人含淚飄過。。。。。。。。。。。。。。。。
          posted on 2007-01-09 10:29 交口稱贊 閱讀(38175) 評論(53)  編輯  收藏 所屬分類: java相關

          FeedBack:
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 11:00 JAVA虛擬機
          進步神速  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 11:05 交口稱贊
          ?????????????????????
            回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 11:08 ???
          樓主是火星人?  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 11:17 BeanSoft
          樓主真是牛人! PF!  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 11:21 交口稱贊
          @???

          俺火星人
          俺身邊的人都是火星人
          俺身邊幾十個人都不知道。。。。。。。。。。。。


          我在網上咋沒看到這種解決方法?俺又孤陋寡聞了。
          你知道為什么不寫出來?
            回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 11:23 交口稱贊
          能想到這種解決辦法的肯定不是我一個

          有點DOS常識的都可以想到

          關鍵是看你愿不愿意分享
          難道別人想到這種解決方法我再想到就是火星啊  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 11:25 交口稱贊
          而且這種方法我當年在學校的時候就用了。。。。。。。。

          只是今天想到了寫出來而已

            回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 13:14 BeanSoft
          和諧社會,呵呵...  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 13:55 冷面閻羅
          @ECHO OFF
          pause
          我的bat文件后面加的是這個代碼.  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 14:07 交口稱贊
          不好意思激動了  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 14:09 交口稱贊
          @冷面閻羅
          應該是在bat最前面加吧

          你pause暫停一下想作什么?

          “請按任意鍵繼續. . .”

            回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 14:11 交口稱贊
          其實最好的方法還是做成exe

          回來做個教程

            回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 15:01 BeanSoft
          兄弟,我在 Window 2003 英文版下面試驗了, 不行的, 還是有 DOS 窗口 一閃而過, 雖然閃的非常快, 不過我還是看到了. 因為 bat 執行的時候調用的命令行對系統來說是: cmd /c xxx.bat. 我想 cmd.exe 好像還暫時沒辦法隱藏吧.

          內容:
          @echo off
          start javaw ViewSystemProperties
          ViewSystemProperties 是一個 Java 類.  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 15:11 交口稱贊
          暈倒。。。。。。。。
          我現在用的就是win2003企業版
          不過是中文
          沒有窗口。。。。。。。。。。。

          英文按說也不會啊
          郁悶
          沒環境實驗啊

          你在其它人的機器上試試
            回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 16:51 ???
          @交口稱贊

          我怎么知道你不知道?我還以為你知道呢,你早說我早告訴你嘛  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 16:52 ???
          基本常識我以為你知道,誰知你不知道,唉  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 17:04 交口稱贊
          @???
          被你打敗了


          呵呵
          雖然對你來說是常識
          但是真的很多人不知道。。。。。。。
            回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 17:05 交口稱贊
          @BeanSoft
          你說的閃一下
          是不是程序啟動時有輸出東西到控制臺了  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 19:42 Cyril
          學到了。。不錯。。:)
          不過順便賣下廣告:
          在Linux的X下基本上不用考慮這一類的問題.  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 20:35 菜菜
          支持
          偶就不知道

          BS那種裝13的所謂高手

            回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-09 23:10 fyxruben
          沒經歷過DOS時代,看來真的是缺失很多東西!
          跨越式發展看來并不一定就好呀!呵呵!  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-10 09:10 交口稱贊
          呵呵
          花半天時間就補上來了

          只是現在玩游戲已經沒有當年的感覺了  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-12 01:01 Mongoose[匿名]
          直接@start java xxxx 不就可以么? 為蝦米還需要@echo off ?  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-12 15:59 BeanSoft
          兄弟, 你的這個我也試過, 不行, 并不是不閃, 而是非常快, 你可以做個執行時間比較長的 bat 試試, 可以看到系統進程中的啟動命令是:
          cmd /c ""D:\test.bat" "
          也就是 Windows 調用 cmd.exe 來解釋 bat 文件.
          我想除非你設置 cmd.exe 啟動的時候是最小化, 這個窗口都是會閃一下的.
          也許我說的不對吧,呵呵.  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-15 11:53 交口稱贊
          @Mongoose[匿名]
          為了很長的bat都不顯示。。。。。。
          只要寫一個@echo off就可以了。

          個人習慣。。。。。  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-15 11:55 交口稱贊
          @BeanSoft
          老大。。。。。。。。。。
          運行個JAVA會要很長嗎。。。。。。。。。。。。。。。。。。。。。。。。。。。。
          呵呵

          能看看你的BAT嗎?
          這個問題我一定會繼續跟蹤下去。。。。  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃)[未登錄] 2007-01-19 10:04 Leon
          小兒科  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-01-24 14:36 hotfix
          那只是隱藏了命令行執行的內容,并沒有隱藏窗口.  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃)[未登錄] 2007-01-26 22:00 test
          學習學習  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-02-02 12:52 BeanSoft
          @hotfix

          沒錯, 就是這個意思, DOS 窗口顯示了一下然后消失了, 隱藏的只是窗口中的命令行, 大概你的cmd.exe默認啟動都是最小化的方式.  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-02-02 13:01 交口稱贊
          。。。。。。。。
          我的沒設置最小化

          設置運行模式:窗口
          開啟快速編輯
          開啟插入模式  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-04-30 21:39 FuzyLoGic
          在xp下是會顯示的,只是很快閃過,我們可以寫一個vbs文件來調用寫的bat文件,正好畢業設計用到自動啟動tomcat的功能點,今天下午寫了個,雙擊就可自動啟動tomcat5.5,當然只是簡單運用,沒有放到系統中去,所以暫時不考慮路徑問題
          vbs文件:
          ------------------------------------------
          REM by FuzyLoGic
          Set ws =createobject("wscript.shell")
          ws.run "start.bat",vbhide
          ------------------------------------------

          start.bat文件
          ------------------------------------------
          @echo off
          start javaw -jar bootstrap.jar
          ------------------------------------------
          兩個文件都放到tomcat lib文件目錄下,雙擊vbs文件即可實現tomcat啟動,完全隱藏執行,當然也可以寫一個讓tomcat關閉或重啟的文件,大家可以試一下,我運行了完全沒問題.
          PS:運行環境 Windows XP
          JDK1.5
          tomcat5.5

            回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-05-01 00:33 交口稱贊
          樓上的你好勤奮。。。。。

          這么晚了還在看文章  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-05-03 01:39 FuzyLoGic
          今天突然想到自己走彎路了,回到上面例子中來看,當時只顧著隱藏窗口卻把自己的目標模糊了,因為我的例子是啟動tomcat,所以不用寫個vbs調用bat,直接用vbs調用exe即可。

          vbs文件:
          --------------------------------------------------
          DIM objShell
          set objShell=wscript.createObject("wscript.shell")
          objShell.Run "tomcat5.exe",vbhide
          --------------------------------------------------

          上面例子中我的bat文件寫的也不好,我們完全可以直接調用exe文件,如下
          bat文件:
          --------------------------------------------------
          @ echo off
          tomcat5.exe
          --------------------------------------------------

          樓上的不知,我今年大學畢業,畢業設計要用到這個知識點,有任務當然要勤奮點了,而且現在還沒找到工作呢,現在學校根本不教這些腳本之類的東西,都是自己到網上搜資料,找了好長時間都找不到,所以順便借你的帖子寫點實踐的經驗,希望對后面的人有所幫助。

            回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-05-03 01:42 FuzyLoGic
          PS:文件路徑問題依然未考慮,運行環境不變,請大家參照上面的帖子,若后面繼續追帖,無特殊說明運行環境都不會變化,不再冗述。  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-05-03 18:41 放假啦
          樓上的樓上你好強  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃)[未登錄] 2007-05-05 09:48 小蝦米
          各位大蝦能能給我發一常用的代碼,求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求你們拉?


          我的們箱是:605073172@qq.com  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-05-08 00:21 FuzyLoGic
          關于惱人的路徑問題,雖然Java中有路徑的解決辦法,但是總是相當之麻煩,總要不斷的調試,而且對Tomcat5的啟動有點特別(exec()方法無法直接調用tomcat5.exe,反正我是反復調試了N遍不見成效)只好改用bat文件的方式解決路徑,為了解決bat文件的彈出窗口又改用vbs文件調用bat文件(是不是感覺繞了好大圈子啊-_-!)。還好,終于搜到了另一解決方法,tomcat5在安裝是會被作為windows的服務放置到服務項里的,所以最新方案如下:

          vbs文件:
          ---------------------------------------------------------
          REM by FuzyLoGic
          set startTomcat5 = WScript.CreateObject("WScript.Shell")
          startTomcat5.run " net start tomcat5 " , vbhide
          ---------------------------------------------------------

          直接啟動服務就ok了,跳過路徑問題,感覺真的不錯,呵呵
          希望對大家有所幫助  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-05-08 10:38 交口稱贊
          多謝樓上

          謝謝你的研究  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2007-10-09 14:01 @......
          呵呵,果然歷害。。。
          我說的是這文章,真可畏是經典幽默之作啊!不錯樓主
            回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2008-01-17 11:16 ronchie
          @FuzyLoGic
          謝謝了  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2008-03-10 16:51 duxin
          在我的xp系統中還是會有dos窗口一閃而過。樓主的方法與下面類似,不過都會有窗口閃過:
          @start javaw xx
          @start javaw -jar xxx.jar
            回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2008-07-22 15:03 jadarr
          根本不行啊
          我的還是會有一個窗口彈出來,只是不輸出內容而已。

          如果用了start javaw xxx,javaw后面就不能用-cp參數了;
          而對于我來說-cp參數是必須的。
            回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2008-09-30 17:15 匿名網友
          扯淡方法..  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2009-05-23 15:58 罵你的人
          嗎的,豬。你騙了多少人啊。你成功的成為一個騙子了  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2009-05-27 10:22 QQ124113792
          些個.VBS,執行你的BAT,就可以了
          createobject("wscript.shell").run ".\xx.bat",0   回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2009-09-07 21:21 某人
          絕對會閃一下.2003server和xp上測試都一樣.  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2010-02-08 15:09 Vernon
          我只想問...怎么關?  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2010-11-21 15:44 easy518
          中國 最牛逼的網址導航: http://www.easy518.com
          中國 最好用的網址導航: http://www.easy518.com
          中國 最好用的網址大全: http://www.easy518.com  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2010-11-21 15:45 easy518
          正在學習 bat呢
          多謝了
          推薦網址

          中國 最牛逼的網址導航: http://www.easy518.com
          中國 最好用的網址導航: http://www.easy518.com
          中國 最好用的網址大全: http://www.easy518.com  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2011-12-18 12:21 overtimer
          還是會閃一下...win7下運行...雙核筆記本  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃)[未登錄] 2012-05-22 19:49 張磊
          我這么用,怎么還會閃一下呢??  回復  更多評論
            
          # re: 真正最正確的用BAT運行JAVA不顯示DOS窗口(連閃一下都不閃) 2012-12-11 14:26 LZSB
          LZ連windows下bat的運行原理都不知道,還在這扯個鳥啊。  回復  更多評論
            
          主站蜘蛛池模板: 融水| 朔州市| 柳河县| 涞水县| 瑞昌市| 牡丹江市| 保靖县| 安溪县| 布尔津县| 福鼎市| 静宁县| 昆山市| 舞钢市| 吴旗县| 中西区| 鹰潭市| 东辽县| 桦川县| 津市市| 崇阳县| 遂溪县| 雅安市| 乐昌市| 张家港市| 汝州市| 英超| 凯里市| 凤台县| 庆阳市| 鄂伦春自治旗| 陆丰市| 商河县| 工布江达县| 大姚县| 乐安县| 兴仁县| 遵化市| 准格尔旗| 铜鼓县| 金阳县| 中卫市|