我曾经下载过一个程序包,是jar的
可以双击运行,可是我自己打包jar就是不能双击运行,不知道为什么?

解决方案 »

  1.   

    JAR的打包要指定启动类。
    如果编译成EXE文件,则只可以在WIN 32系统下运行,在别的地方就不可以了!如REDHAT!
      

  2.   

    用jet或者vj++都可以生成exe
    jar不能运行 是因为你的jar打开方式被设置成了winzip之类的
      

  3.   

    可以试一下Excelsior JET,http://www.excelsior-usa.com/jet.html
      

  4.   

    白云黄鹤 jack (白云原创) 
    倘若说看到标题后,以为jb真的提供了一种把java应用程序打包成exe文件的主流方法的话,你会失望的,下面的一个小技巧只是一个技巧而已。 这个是borland不公开的使用技巧,能够通过jbuilder来制作exe文件来启动java文件。jbuilder并不支持本地编译机制。但是有一个隐藏的技巧可以让你从可执行文件来启动java程序,可以出现或者不出现console窗口。想做到这些,需要jbuilder的bin目录下的这些文件: 
    jbuilder.exe 
    jbuilderw.exe (可选) 
    jbuilder.config 
    jdk.config 
    javalauncher.dll “jbuilder.exe”是一个通用的可执行外壳文件,用以启动java程序,”jbuilderw.exe“好像是javaw.exe一样,它把”jbuilder.exe”包装起来,但是运行时候不显示那个console的窗口。使用这些文件的关键是文件名。“jbuilder.exe”查找一个文件叫”jbuilder.config”的配置文件,里面包含了运行java程序的必须信息。同样的”jbuilderw.exe”查找”jbuilder.exe”来启动不带console窗口的java程序。如果把jbuilder.exe重命名为”foo.exe”,那”foo.exe”将去寻找”foo.config”配置文件,同样”jbuilderw.exe”被重命名为”foow.exe”,它会去寻找”foo.exe”文件。 
    说到这里,聪明的读者应该猜到怎样利用jbuilder.exe来启动应用程序了。只要把jbuilder 
    .exe,jbuilerw.exe,jbuilder.config改名成相应的文件名,在jbuilder.config里面指定主 
    类和类路径,就能够通过执行jbuilder.exe(或者被改名后的exe文件)来启动java应用程序 
    了 
    。下面是用本机为例。 
    borland jbuilder 5被安装在e:\jbuilder5\目录下,在e:\jbuilder5\bin\下建立一个temp目录,然后把jbuilder.exe,jbuilder.config,javalauncher.dll,jdk.config四个文件拷贝到e:\jbuilder5\bin\temp\目录下,然后在这个目录下建立一个hello目录,在这个目录下 
    生 
    成一个hello.java文件,即e:\jbuilder5\bin\temp\hello\hello.java文件, 
    file://hello.java/ 
    package hello; 
    public class hello{ 
    public static void main(string s[]){ 
    system.out.println("hello, exe file!"); 

    } 编译成class文件,如图18-14: 图18-14 编译所有java文件 然后打开jbuilder.config文件,作相应的修改: 
    在jbuilder.config里面找到下面两行 
    # start jbuilder using the its main class 
    mainclass com.borland.jbuilder.jbuilder 修改为 
    # start jbuilder using the its main class 
    mainclass hello.hello addpath e:/jbuilder5/bin/temp/ addpath命令是把目录加入类路径中,这个命令和其它config里面可以识别的命令可以在jbu 
    ilder/bin目录下的config_readme.txt里面找到详细说明。 
    然后将jdk.config里面的javapath修改成相对的路径,例如原来是 
    javapath ../jdk1.3/bin/java 
    修改成 
    javapath ../../jdk1.3/bin/java 最后
    将jbuilder.exe,jbuilder.config修改成所需要的文件名,例如foo.exe和foo.config文件 。 现在执行foo.exe文件 
    可以看到执行的结果如图18-15: 图18-15 执行foo.exe后的运行结果 
    至此,通过修改jbuilder来使用exe文件启动自己的java应用程序已经完成了。 但是好玩的地方并不在这个地方,下面的小技巧可能更有趣,将jar文件打包进入exe文件! 假设利用上面的文件,生成hello.jar包,执行过程和运行结果如图18-16: 
    jar cvf hello.jar hello\*.class 
    图18-16 将类文件打包成exe文件 然后将jar包附加到jbuilder.exe后面去,执行过程如图18-17: 
    copy /b ..\jbuilder.exe+hello.jar foo.exe 图18-17 将jar文件转化成exe文件 在foo.config(jbuilder.config)文件里面把前面加入的类路径去掉,并加入下面的路径: 
    addpath e:/jbuilder5/bin/temp/foo.exe 
    然后执行,执行结果如图18-18: 
    foo.exe 图18-18 变成exe文件的jar文件执行结果 
    看到了么?一个含jar包的exe文件被执行了! 
    这个过程的大致原理是:exe文件的重要信息都在文件头部,所以把乱七八糟的东西放exe文件尾部是不要紧的;而jar/zip文件的重要信息是在文件尾部的,这样它们两不相干,能够容 易的被执行。 
      

  5.   

    微软就是如此阉割Java的,老兄既然这样想,用VJ开发好了。唉,何苦呢......
      

  6.   

    这样可以吗?
    打包成example.jar,放入C:\java\
    classpath 中加入c:\java\example.jar;
    在桌面上新建快捷方式,路径添上java example.Hello
    Hello.class 带有main函数。直接运行快捷方式。
    可以的话可以做成安装盘,运行完,自动让它建个快捷方式就行了。
      

  7.   

    楼上帖出来的文章是在本站的文档中心里的,的确可行,我试过。你可以考虑用JB7,它支持生成exe文件,也就是本地代码,我只在win平台上生成过,如果从字面看,应该是for linux版的jb7也可以生成在linux下运行的本地代码:)从生成的exe看,可能与上面的文章中的方法有相通之处,因为它生成的exe仍需要JRE的支持,只是有效地保护的代码不被反编译而已。
      

  8.   

    楼上帖出来的文章是在本站的文档中心里的,的确可行,我试过。你可以考虑用JB7,它支持生成exe文件,也就是本地代码,我只在win平台上生成过,如果从字面看,应该是for linux版的jb7也可以生成在linux下运行的本地代码:)从生成的exe看,与上面的文章中的方法有相通之处,因为它生成的exe仍需要JRE的支持,只是有效地保护的代码不被反编译而已。不过,呵呵,如果你把它生成的exe换个名字,扩展名改成 .zip,然后用winrar找开就一切真相大白了。
      

  9.   

    是不是觉得很失望啊,没有符合你的要求。我可能会给你满意的答复。将Java应用程序本地编译为EXE的几种方法1. 从www.towerj.com获得一个TowerJ编译器,该编译器可以将你的CLASS文件
       编译成EXE文件。2. 利用微软的SDK-Java 4.0所提供的jexegen.exe创建EXE文件,这个软件可以
       从微软的网站免费下载,地址如下:   http://www.microsoft.com/java/download/dl_sdk40.htm   jexegen的语法如下:   jexegen /OUT:exe_file_name
               /MAIN:main_class_name main_class_file_name.class
               [and other classes]3. Visual Cafe提供了一个能够创建EXE文件的本地编译器。你需要安装该光盘
       上提供的EXE组件。4. 使用InstallAnywhere创建安装盘。5. 使用IBM AlphaWorks提供的一个高性能Java编译器,该编译器可以从下面的
       地址获得:   http://www.alphaworks.ibm.com/tech/hpc6. JET是一个优秀的Java语言本地编译器。该编译器可以从这个网站获得一个
       测试版本:   http://www.excelsior-usa.com/jet.html7. Instantiations公司的JOVE   http://www.instantiations.com/jove/product/thejovesystem.htm
       JOVE公司合并了以前的SuperCede,一个优秀的本地编译器,现在SuperCede
       已经不复存在了。8. JToEXE   Bravo Zulu Consulting, Inc开发的一款本地编译器,本来可以从该公司的
       网页上免费下载的,不过目前在该公司的主页上找不到了。   公司主页:http://www.bravozulu.com/   根据精华区中的资料,下面这个FTP上曾经有过这个软件,不知道现在是不是
       还在:   ftp://race.dlut.edu.cn/pub/java/tools/jet注:本文的主要内容来自如下网站,本人对其中的技术性内容进行了确认并补
    充了一小部分内容。http://www.artima.com/legacy/answers/Aug2000/messages/190.html