我写了个窗口程序,压成jar后双击没有反应,一定要放在jdk\bin\ 目录下输入DOS命令java -jar cms.jar 后才能运行?请问高手这是为什么?
怎样才能写成一个双击就能运行的文件?我就算写了一个.bat文件,也必须得把.bat和cms.jar放在jdk\bin\  目录下才双击能运行!!!!
请问高手们怎么解决这个问题啊?

解决方案 »

  1.   

    打包成jar你可能没打包好没指定main函数
      

  2.   

    在环境变量path里面加入jdk\bin\的完整路径
      

  3.   

    [code=BatchFile]echo "start"
    set MEM_ARGS=-Xms512m -Xmx512m -XX:MaxPermSize=512m
    set JAVA_HOME=你的jdk的位置
    set classpath=.;%classpath%;%JAVA_HOME%\lib\dt.jar%JAVA_HOME%\bin\java -Duser.timezone=GMT+8 %MEM_ARGS% 你的主类pause[/code]
      

  4.   

    不是这个问题  我不是说了我在DOS下输入 java -jar cms.jar 能运行了么
      

  5.   

    偶介绍下自己的做法:
       可以把普通的 Java 程序做成真正的 exe, 也就是单一个 exe 就可以在没有安装 JVM 的机器上运行。这样的工具常见的有 JET 和 gcj. 前者是收费的,而且做出来的 exe 还是需要一堆 dll 。推荐使用 gcj. 他有 windows 和 Linux 版,直接下载 zip 包,不需要安装,里面有不少例子,一些 build 的批处理文件。从原理来说 gcj 自己实现了 JVM 规范,也就是你编写一个 HelloWorld.java, 其中的 main 方法为 System.out.println("foo");
    当使用 gcj 把它做成 exe( 大约 2M ) ,运行这个 exe 时,会启动里面的一个小型 jvm, 在这上面跑 HelloWorld 。 
      

  6.   

    其实,把Java做成纯exe实在是吃力不讨好,有很多限制,文件又大。我比较倾向另几种做法:    使用 InstallAnywhere 等工具,制作一个 exe 的安装包 
    用户可以选择使用他机器上的 JRE 或是这个安装包内的 JRE 来运行程序 
    这是很常见的一种做法,如 JBuilder 就是这么做的。 
    这样的好处是不要求对方机器上装有 JRE ,而且你原来的程序不需要任何改动。 
    InstallAnywhere 中一个压缩的 JRE 大概是 8M 。    制作成可执行的 jar, 也就是在 META-INF 的 MANIFEST 文件制定 Main-Class
    可以通过命令行 java -jar jarfile.jar 来执行, windows 默认的把 *.jar 使用 javaw -jar 打开,所以有些机器上可以直接双击 jar 运行。    制作伪 exe, 其实和上一种做法是一样的,只不过做成 exe, 调用系统的 java.exe 来运行它,这样的工具有 nativeJ,exe4j 等     其实 Java 不像 VB,Delphi 只是一个语言,而是一个平台。 
    jar 是最常用的部署单元,做成 exe 没什么意思。 
    一、 exe4j 。 
        说明: exe4j 可以将 Jar 文件制作成 exe 文件,但需 jre 支持,也可将 Jar 文件放在外面。 
        软件性质:共享软件 
        下载地址: http://www.ej-technologies.com/products/exe4j/overview.html 
    二、 JBuilder 。 
        说明:新版本的 JBuilder 可以直接把工程制作成各系统的可执行文件,包括 Windows 系统。 
        软件性质:商业软件 
        下载地址:略。我是从 eMule 下载的。 
    三、 NativeJ 。 
        说明:与 exe4j 功能类似。 
        软件性质:共享软件 
        下载地址: http://www.dobysoft.com/products/nativej/download.html 
    四、 Excelsior JET 。 
        说明:可以直接将 Java 类文件制作成 exe 文件,除 AWT 和 Swing 及第三方图形接口外可不需 jre 支持( Java5.0 不行)。 
        软件性质:共享软件 
        下载地址: http://excelsior-usa.com/home.html 
    五、 jshrink 。 
        说明:可将 Jar 文件打包进 exe 文件。同时具有混淆功能(这才是它的主要功能)。 
        软件性质:共享软件 
        下载地址: http://www.e-t.com/jshrink.html 
    六、 InstallAnywhere 。 
        说明:打包工具,对 Java 打包最好用。可打包成各操作系统运行包。包括 Windows 系统。 
        软件性质:商业软件。 
        下载地址: http://www.zerog.com/ 
    七、 InstallShieldX 。 
        说明:与 InstallAnywhere 类似,但比 InstallAnywhere 功能强大。相对的,比较复杂,不易上手,我现在还没学会。 
      

  7.   

    这个软件是把java的文件生成exe的·
      

  8.   

    那请问 在别人的机子上JDK的位置不同了怎么办?
      

  9.   

    我不需要用其他软件来做成EXE文件我只想弄明白JAVA写完程序后怎么发布?不应该这么麻烦才能运行的啊!
      

  10.   


    叫用户装jre,装好jre,双击jar就可以运行,机器上有jre,jsmooth会自己找的,找不到会提示,并连接到sun的网站
      

  11.   

    我用jbuilder,直接可以生成可执行jar,双击就能运行,用IDE把
      

  12.   

    可以把需要的jre化境一起打包进去,从自己的jre-启动,具体没操作过
      

  13.   

    jsmooth.sourceforge.netexe4j也可以,不过我没用过
      

  14.   

    我刚在自己的机子上重新装了JRE了,还是双击没作用。
      

  15.   


    右键jar -》打开放式里面选 javaw
      

  16.   

    也试过了,还是没反应。但是在DOS下打命令明明没问题啊
      

  17.   

    。。你把这个保存为bat文件双击吧
    echo "start" 
    set MEM_ARGS=-Xms512m -Xmx512m -XX:MaxPermSize=512m 
    set JAVA_HOME=你的jdk的位置 
    set classpath=.;%classpath%;%JAVA_HOME%\lib\dt.jar;cms.jar;
    %JAVA_HOME%\bin\java -Duser.timezone=GMT+8 %MEM_ARGS% 你的主类 
    pause
      

  18.   

    如果你的程序没有引用别的jar包,比如数据库驱动,那直接在eclipse里生成jar文件,然后用exe4j生成exe文件。
    如果引用到别的jar包,那么可以下载一个eclipse插件fatjar,就可以将别的jar包打到一起了,然后用exe4j生成exe文件,可以选择带jre的或者不带jre的,
    具体使用方法网上搜索有很多~
      

  19.   

    LZ把Sun的JDK或JRE重新安装一下,因为安装好后,jar文件会默认关联JDK或JRE,图标也会变成Sun Java的样子,这时候双击就可以运行了
      

  20.   

    环境变量啊 
    或者你直接用eclipse之类工具打包
      

  21.   

    classpath=.;D:\Program Files\Java\jdk1.5.0_14\lib;D:\Program Files\Java\jdk1.5.0_14\lib\tools.jar;
    path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%QUARTUS_ROOTDIR%\bin;
         %QUARTUS_ROOTDIR%\win;%QESS_ROOTDIR%\bin;
         D:\Program Files\Java\jdk1.5.0_14\bin;D:\ProgramFiles\Java\jre1.5.0_14\bin;
    上边是我的环境变量的设定,没错吧?
    然后JAR文件也已经跟JRE关联了,显示的是JAVA的图标,但是双击没作用。
    我用NETBEANS打包了以后双击运行也没作用。
    但是在DOS下输入命令 java -jar cms.jar  能运行没问题。
    该怎么解决呢?
      

  22.   

    我也用过了,但是运行生成的EXE文件后弹出了个什么报错信息都没有的报错窗口。
    我并不需要弄成EXE文件,我只想知道JAVA软件都是怎么发布给用户的。
      

  23.   

    上海一家外资公司招聘java-pm,熟悉银行背景,有过银行的项目经历的,7年左右,英语流利,有感兴趣的朋友可以加我msn:[email protected]详谈,或者发简历到我的msn邮箱均可,记得有朋友也可以互相推荐呀
      

  24.   

    只要你的程序运行正常,用fat大好包以后就可以运行(目标机需要安装虚拟机,),或者你直接转化成exe格式的
      

  25.   

    把jre放到你的项目目录下,写一个批处理。而且认为你打包没有打好。
      

  26.   

    问大家个问题。是不是JAVA很少用于写桌面的应用程序?所以发布才这么麻烦?