windows下的java项目,如swing,启动方式一般是建立批处理文件,执行 java 或 javaw 命令,如下:javaw -jar xxx.jar但会有DOS的黑屏一直存在,在批处理这样写@echo off
start javaw -jar xxx.jar就只会在启动刹那有黑屏闪过。但怎么能彻底去掉黑屏呢?昨晚做了一个小东西,可解决这个问题。你可能猜到了!用 Win32 或 MFC 写一个程序,执行 javaw 即可!主要代码如下:
CString path;

GetModuleFileName(NULL, path.GetBufferSetLength(MAX_PATH), MAX_PATH); int nCount = path.ReverseFind( '\\'); 
path = path.Left(nCount);  CString cmdfile;
cmdfile.Format("%s\\%s", path, "cmd.txt"); CStdioFile f; if(!f.Open(cmdfile, CFile::modeRead|CFile::typeText)) {
MessageBox(0, "当前目录下没有 cmd.txt 配置文件.\n\n该文件应该有两行, 第一行是命名, 第二行是参数.", "错误", MB_OK);
exit(1);
} CString cmd;
f.ReadString(cmd); CString param;
f.ReadString(param); f.Close(); param.Replace("{path}", path); ShellExecute(0, "open", cmd, param, 0, SW_SHOWNORMAL);编译完成生成 .exe 后,在同目录下建立一个 cmd.txt 文件,内容如下:javaw
-jar {path}\xxxx.jar其中{path}指当前目录,用来确定 xxxx.jar 的绝对位置这样,双击 .exe 就可以没有黑屏的启动 java 项目了!

解决方案 »

  1.   

    呵呵,牛人啊!可以用一些生成exe的工具打包成exe格式的文件,这样就和别的程序(windows下)没有区别了!这样的工具有好多的。
      

  2.   

    为什么要用Win32 或 MFC 写一个程序呢?这样不就体现不出java的跨平台了么?
      

  3.   

    NSIS,开源的打包工具,脚本很简单,定制安装跟installanywhere效果有得一拼
      

  4.   

    生成一个双击启动的jar文件。
    或者使用像 winrun4j 之类的工具制作一个 exe文件启动程序。
      

  5.   

    windows上直接右键运行,或者双击运行
      

  6.   

    直接弄个快捷方式,不就行了么?
    然后在快捷方式中加javaw -jar xxx.jar
      

  7.   

    做成exe就一定能执行了吗? 如果我的机器不设置path和classpath你也能运行jar包吗?(答案是不能),所以你真的想让自己的jar包再windos的系统上yunxing,你还得给它自动安装jar包和设置默认环境变量。如果只是把jar转换成exe,说实话有很多工具,不用你自己写批处理(因为你的批处理太简单了,而且有局限新)。实际中,公司卖的只是jar包,从没有谁去卖exe,环境变量和jdk都是客户自己装或者公司给装。所以你这个没什么意义!原谅我打击你了!不过有这种学习的劲头是值得表扬的,学懂了能给大家分享也是不错的!谢谢了!
      

  8.   

    不需要那么烦的,vbs可以搞定
    // jarConfig.bat
    javaw -jar xxx.jar// run.vbs
    set ws=WScript.CreateObject("WScript.Shell") 
    ws.Run "jarConfig.bat",0用记事本保存这两个文件以后,运行run.vbs即可
      

  9.   

    installAnywhere打包的时候可以选择把jre打包进去,打包完成后,安装就可以使用了!不用手动配置环境变量啊!
      

  10.   

    java程序有几个是在windows下运行的?exe....
    做成个可执行的jar包是最通用的方案
      

  11.   

    那个问题,在cmd 或jar中给出exit或exit(0)退出不就行了吗,我一真都是如此做的