1. 程式人生 > >真正最正確的用BAT執行JAVA不顯示DOS視窗(連閃一下都不閃)

真正最正確的用BAT執行JAVA不顯示DOS視窗(連閃一下都不閃)

今天寫一個獨立於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年沒買過碟子的人含淚飄過。。。。。。。。。。。。。。。。

簡單啊,在你批處理的相同目錄下新建一個記事本,裡面輸入:
set ws=wscript.createobject("wscript.shell")
ws.run "win.bat /start",0
(其中win.bat為你自己的批處理名字,自己改)
然後把這個記事本儲存為字尾名為.vbe的檔案,到時候你只要執行這個vbe檔案就達到目的了!~


Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:/Batch Files/syncfiles.bat" & Chr(34), 0
Set WshShell = Nothing
其中的C:/Batch Files/syncfiles.bat替換成自己的BAT檔案就可以了。用快捷方式指向這個vbs檔案,再執行快捷方式就看不到cmd視窗了。

export PYTHONPATH="/Library/Python/2.5/site-packages:$PYTHONPATH"
alias python=python2.5