zoukankan      html  css  js  c++  java
  • java生成jar包

    Java编写的application程序是否可以终于形成一个类似于exe一样的可执行文件。难道就仅仅能用命令行执行?

    通常有两种。一种是制作一个可运行的JAR文件包。然后就能够像.chm文档一样双击运行了;而还有一种是使用JET来进行编译。

    可是JET是要用钱买的,并且据说JET也不是能把全部的Java程序都编译成运行文件,性能也要打些折扣。所以,使用制作可运行JAR 文件包的方法就是最佳选择了,何况它还能保持Java的跨平台特性。 

    以下就来看看什么是JAR文件包吧: 

    1. JAR文件包 

    JAR文件就是Java Archive File,顾名思意。它的应用是与Java息息相关的,是Java的一种文档格式。JAR文件很类似ZIP文件——准确的说。它就是ZIP文件,所以叫它文件包。

    JAR文件与ZIP文件唯一的差别就是在JAR文件的内容中,包括了一个META-INF/MANIFEST.MF文件,这个文件是在生成JAR文件的时候自己主动创建的。

    举个样例。假设我们具有例如以下文件夹结构的一些文件: 
      == 
    -- test 
    -- Test.class 
    把它压缩成ZIP文件test.zip,则这个ZIP文件的内部文件夹结构为: 
      test.zip 
      `-- test 
        `-- Test.class 

    假设我们使用JDK的jar命令把它打成JAR文件包test.jar,则这个JAR文件的内部文件夹结构为: 
     test.jar 
      |-- META-INF 
      |  `-- MANIFEST.MF 
      `-- test 
        `--Test.class 
    2. 创建可运行的JAR文件包 

    制作一个可运行的JAR文件包来公布你的程序是JAR文件包最典型的使用方法。

    Java程序是由若干个.class文件组成的。这些.class文件必须依据它们所属的包不同而分级分文件夹存放;执行前须要把全部用到的包的根文件夹指定给CLASSPATH环境变量或者java命令的-cp參数;执行时还要到控制台下去使用java命令来执行,假设须要直接双击执行必须写Windows的批处理文件(.bat)或者Linux的Shell程序。

    因此,很多人说,Java是一种方便开发人员苦了用户的程序设计语言。 

    事实上不然,假设开发人员可以制作一个可运行的JAR文件包交给用户。那么用户使用起来就方便了。

    在Windows下安装JRE(Java Runtime Environment)的时候。安装文件会将.jar文件映射给javaw.exe打开。

    那么,对于一个可运行的JAR文件包,用户仅仅须要双击它就行运行程序了。和阅读.chm文档一样方便(.chm 文档默认是由hh.exe打开的)。那么,如今的关键,就是怎样来创建这个可运行的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 正确的情况下)。

  • 相关阅读:
    Spring IOC 和 AOP
    Java 类加载机制
    面向对象程序设计思想简述
    Linux 卸载 MySQL 数据库
    Linux 安装 mysql 数据库
    Linux 配置 JDK
    Linux 指令
    去除字符串里面的某些字符替换成另一个字符
    jsp有哪些内置对象?作用分别是什么? 分别有什么方法?
    jsp有哪些动作?作用分别是什么?
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6719001.html
Copyright © 2011-2022 走看看