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

交友莫独酒,茅台西凤游。
口干古井贡,心徜洋河流。
称多情杜康,趟无量双沟。
赞中华巍巍,无此不销愁。

常用链接

留言簿(68)

随笔分类(136)

随笔档案(122)

最新随笔

搜索

  •  

积分与排名

  • 积分 - 522174
  • 排名 - 94

最新评论

今天写一个独立于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 交口称赞 阅读(38138) 评论(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的运行原理都不知道,还在这扯个鸟啊。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: