服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

关掉那可恶的dos窗口


  用过java的人都知道,每次运行java程序都要打开一个可恶的dos窗口,要是能像ie、office等windows程序一样运行该多好。也许有人会想到,jbuilder运行时不就没有dos窗口吗,但它是用c或c++写的一个外壳程序,可惜我不会其它语言,那该怎么办?其实只要你善于观察、研究,有很多办法可以解决的。这里给你3个解决方法,让你的程序从此告别dos窗口!
  
  (一) 巧用jbuilder的外壳:
  
  仔细观察jbuilder安装目录下的bin目录(注意,这里以jbuilder8为例,低版本的jbuilder会稍微有些不同),你会发现jbuilder.config、jbuilder.exe、jbuilderw.exe及jdk.config 4个文件,用记事本打开jdk.config文件,将第15行javapath ../jdk1.4/jre/bin/client/jvm.dll 改为你机器上jdk1.4的相应路径,同样要注意是jdk1.4,因为以前版本的jdk没有bin/client/jvm.dll文件,你可以使用绝对路径,如将其改为javapath d:/jbuilder8/jdk1.4/jre/bin/client/jvm.dll,然后再将21行addpath ../jdk1.4/lib/tools.jar改为你机器上相应路径,如addpath d:/jbuilder8/jdk1.4/lib/tools.jar,其它不需要修改,存盘后退出。再用记事本打开jbuilder.config文件,在addpath后加一行,将你的classpath加进去,如addbootpath .(我这里将类文件和上面4个文件放到了同一个目录下),然后将最好一行的mainclass com.borland.jbuilder.jbuilder改为你的主程序,如mainclass com.bhr.ioat.test,保存退出。然后双击jbuilderw.exe试试看,是不是没有dos窗口了。注意,如果你要修改上面文件的名字时,一定要保证jbuilder.config、jbuilder.exe、jbuilderw.exe 3个文件的匹配,如改为test.config、test.exe、testw.exe,任何的不匹配都可能运行不了你的程序。其实jbuilder.config文件主要就是classpath的设置,你可以根据需要删除里面好多内容的,留着你慢慢研究吧。
  
  (二) 将你的程序打包成jar文件:
  
  首先要安装jdk,注意一定是那种exe的安装文件,虽然你可以从别的机器上copy一个安装过的jdk使用,但是这里不行,为什么?稍后再告诉你。装完jdk以后,到安装目录的demo/jfc/notepad下,双击notepad.jar,怎么样,是不是没有dos窗口了,秘密在哪里,有两点。(1)jdk在安装过程中会将jar文件的打开方式关联到javaw.exe文件。什么是javaw.exe?其实和java.exe一样,只不过运行程序时没有dos窗口。(2)就是那个jar文件了,如果你不会生成jar,还是先去查查别的资料吧。用winzip解开notepad.jar,到meta-inf目录下,打开manifest.mf文件,看到了吧,里面有一句main-class: notepad,换成你自己的类就可以了。需要注意的是main-class:后面有一个空格,如果少了的话,应该就起不来你的程序了。
  
  (三) 通过windows的start命令:
  
  这个就简单多了,写一个启动你程序的批处理文件,一定要用javaw命令来运行,然后在javaw命令前加上start命令就可以了,如:
  
  set classpath=.%classpath%;
  
  set path= d:/jbuilder8/jdk1.4/bin;%path%;
  
  start javaw com.bhr.ioat.test
  
  不过这样有个问题,就是dos窗口会闪一下,然后再关掉,还算可以凑合。
  
  上面只是提了3个方法,其中通过第一种方法的介绍,你可以举一反三,如用intellj idea的外壳也可以实现。虽然dos窗口是没了,不过程序出的异常也同样看不到了,这里有几个方法可以弥补这个问题,(1)将你的输出重定向到文件;(2)程序中使用log4j做log(一定要catch住所有异常才可以)。

扫描关注微信公众号