请教一下弄出来的这个Lottery.jar怎么不能双击执行啊 
打开为什么是是解压呢

解决方案 »

  1.   

    那可能是你默认打开jar包使用的是解压,你改变下默认的打开jar包程序就行了。
    创建可执行的   JAR   文件包,需要使用带   cvfm   参数的   jar   命令,同样以上述   test   目录为例,命令如下:  
       
      jar   cvfm   test.jar   manifest.mf   test  
       
      这里   test.jar   和   manifest.mf   两个文件,分别是对应的参数   f   和   m,其重头戏在   manifest.mf。因为要创建可执行的   JAR   文件包,光靠指定一个   manifest.mf   文件是不够的,因为   MANIFEST   是   JAR   文件包的特征,可执行的   JAR   文件包和不可执行的   JAR   文件包都包含   MANIFEST。关键在于可执行   JAR   文件包的   MANIFEST,其内容包含了   Main-Class   一项。这在   MANIFEST   中书写格式如下:  
       
      Main-Class:   可执行主类全名(包含包名)  
       
      例如,假设上例中的   Test.class   是属于   test   包的,而且是可执行的类   (定义了   public   static   void   main(String[])   方法),那么这个   manifest.mf   可以编辑如下:  
       
      Main-Class:   test.Test   <回车>  
       
      这个   manifest.mf   可以放在任何位置,也可以是其它的文件名,只需要有   Main-Class:   test.Test   一行,且该行以一个回车符结束即可。创建了   manifest.mf   文件之后,我们的目录结构变为:  
       
        ==  
       
        |--   test  
       
        |    `--   Test.class  
       
        `--   manifest.mf  
       
      这时候,需要到   test   目录的上级目录中去使用   jar   命令来创建   JAR   文件包。也就是在目录树中使用“==”表示的那个目录中,使用如下命令:  
       
      jar   cvfm   test.jar   manifest.mf   test  
       
      之后在“==”目录中创建了   test.jar,这个   test.jar   就是执行的   JAR   文件包。运行时只需要使用   java   -jar   test.jar   命令即可。  
       
      需要注意的是,创建的   JAR   文件包中需要包含完整的、与   Java   程序的包结构对应的目录结构,就像上例一样。而   Main-Class   指定的类,也必须是完整的、包含包路径的类名,如上例的   test.Test;而且在没有打成   JAR   文件包之前可以使用   java   <类名>   来运行这个类,即在上例中   java   test.Test   是可以正确运行的   (当然要在   CLASSPATH   正确的情况下)。
      

  2.   

    这个和你系统的文件关联有关,你用的是hao压,打开hao压程序,在选项里设置一下 文件关联,去掉.jar文件的关联,如果你系统安装JDK的话,会还原会java包程序。