`
booby325
  • 浏览: 383498 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

生成Jar包以及指定初始类入口

阅读更多
jar:JavaTM Archive (JAR) file,java存档文件

我们的输入(要压缩的东西)主要是class文件,还有辅助的资源(这其中可能有图片,jsp文件,html文件等等)。

用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...   
  选项:   
  
    -c 创建新的存档
  -t 列出存档内容的列表
  -x 展开存档中的命名的(或所有的〕文件
  -u 更新已存在的存档
  -v 生成详细输出到标准输出上
  -f 指定存档文件名
  -m 包含来自标明文件的标明信息
  -0 只存储方式;未用zip压缩格式
  -M 不产生所有项的清单(manifest〕文件
  -i 为指定的jar文件产生索引信息
  -C 改变到指定的目录,并且包含下列文件:
   
     

  清单(manifest〕文件名和存档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺序。   

  示例1:将两个class文件存档到一个名为 'classes.jar' 的存档文件中:
  jar cvf classes.jar Foo.class Bar.class   

  示例2:用一个存在的清单(manifest)文件 'mymanifest' 将 foo/ 目录下的所有文件存档到一个名为 'classes.jar' 的存档文件中:
  jar cvfm classes.jar mymanifest -C foo/ .   
_____________________________________________________________________
  我们只有一个HelloWorld,如下:   

  public class HelloWorld{
      public static void main(String[ ] args){
          System.out.println("Hi, Hello World!");
      }
  } 
 
  将这个java文件存到C盘跟目录下,ok,接下来,   
  >javac HelloWorld.java
    >jar cvf hello.jar HelloWorld.class  

  打开刚刚做好的helloword.jar包,多了META-INF目录,其中包含一个MANIFEST.MF文件,其内容是:
  Manifest-Version: 1.0
  Created-By: 1.4.2 (Sun Microsystems Inc.)
  

  加一句:Main-Class: HelloWorld(在第三行)。这个就是我们之前写的那个类,也就是我们的入口类。也即,
  Manifest-Version: 1.0
  Created-By: 1.4.2 (Sun Microsystems Inc.)
  Main-Class: HelloWorld
 

  接下来,我们在命令提示符里执行:
  >jar umf MANIFEST.MF hello.jar 

  这样我们使用了我们自己的MANIFEST.MF文件对原来默认的进行了更新
  >java -jar hello.jar   
   
  Hi, Hello World!  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics