有时候为了更方便快捷的部署和执行Java程序,要把java应用程序打包成一个jar包。而这个基础的操作有时候也很麻烦,为了方便java程序员们能够方便的打包java应用程序,下面对jar命令进行介绍,并举出几个简单例子针对不同情况进行打包。
        一. jar命令用法:
         在cmd命令窗口下输入jar,回车,就会提示改命令的用法:
        

二.例子(这里介绍的都是生成双击可执行的jar包):
        1.首先介绍如何在命令行下执行打包程序。
        1.1.没有包结构的最简单的工程。
            (1)在c:盘下新建文件“HelloWorld.java”:

      }

(2)在命令行下输入c:\javac HelloWorld.java,在c:盘下编译生成“HelloWorld.class”。

(3)在c:盘下新建文件“menefest”(没有后缀名):

Main-Class: HelloWorld

注意最后要有一个空行,否则会出现找不到类的错误。

(4)打包:输入c:\jar cvmf menifest HelloWorld.jar HelloWord.jar HelloWorld.class,在c:盘下生成“HelloWorld.jar”。

(5)执行:输入c:\java -jar HelloWord.jar。屏幕回显“HelloWorld”。

1.2.有包结构的java工程。
            (1)在c:\com\gosyl\demo\下新建文件“HelloWorld.java”:

package com.gosyl.demo;

public class HelloWorld{
    public static void main(String[] args){
        System.out.println("HelloWorld");
    }
}

(2)在命令行下输入c:\javac com/gosyl/demo/HelloWorld.java,在c:\com\gosyl\demo\文件夹下编译生成“HelloWorld.class”。

(3)在c:盘下新建文件“menefest2”(没有后缀名):

Main-Class: com.gosyl.demo.HelloWorld

注意最后要有一个空行,冒号后面要一个空格。否则会出现找不到类的错误。

(4)打包:输入c:\jar cvmf menifest2 HelloWorld.jar HelloWord.jar com/,在c:盘下生成“HelloWorld.jar”。

(5)执行:输入c:\java -jar HelloWord.jar。屏幕回显“HelloWorld”。

1.3.引用到外部jar包的java工程。
            (1)在c:\com\gosyl\demo\下新建文件“Car.java”:

package com.gosyl.demo;

public class Car
{
    public static void main(String[] args){
        Light.on();        
    }
}

(2)在c:\com\gosyl\demo\下新建文件“Light.java”:

package com.gosyl.demo;

class Light 
{
    public static void on(){
        System.out.println("Light is on!");
    }
}

(3)打包1:输入c:\jar cvf  Light.jar com/gosyl/demo/Light.class,在c:盘下生成“Light.jar”。
        
            (4)在c:盘下新建文件“menefest-car”(没有后缀名):

Main-Class: com.gosyl.demo.Car
Class-Path: Light.jar

注意最后要有一个空行,冒号后面要一个空格。否则会出现找不到类的错误。

(5)打包2:输入c:\jar cvmf  menifest-car Car.jar com/gosyl/demo/Car.class,在c:盘下生成“Car.jar”。
        
            (6)执行:输入c:\java -jar Car.jar。屏幕回显“Light is on”。

三.总结
        1.清单文件menifest,对格式要求很高,注意每个冒号后面要有一个空格,文件最后要有一个空行。
        2.对于引用到外部jar包的工程,需要在manifest中定义好Class-Path属性。
        3.对于双击.bat文件出现刷屏现象的情况,请直接把.bat文件的内容键入命令行执行。
        4.对于重复签名的jar包,在META-INF里面会出现多个签名文件,删除掉多余的,保存其中一个才能保证jws正常启动。
        
        请参照相关文章此文章貌似有错:

java项目打包与发行

如何用jar命令对java工程进行打包的更多相关文章

  1. JAVA_SE基础——58.如何用jar命令对java工程进行打包

    有时候为了更方便快捷的部署和执行Java程序,要把java应用程序打包成一个jar包.而这个基础的操作有时候也很麻烦,为了方便java程序员们能够方便的打包java应用程序,下面对jar命令进行介绍, ...

  2. Eclipse IDE 添加jar包到Java工程中

    操作系统:Windows 10 x64 工具1:Eclipse Java EE IDE for Web Developers. Version: Photon Release (4.8.0) 在Pac ...

  3. 如何用jar命令生成可执行的jar文件

    如果你已经把zh.java文件生成了zh.class文件 如果zh.class的路径是bin/com/zhang/zh.class 则在bin目录下放一个manifest.mf文件,文件内容如下: M ...

  4. Java jar命令 常见用法

    一.jar命令作用: 进行打包 -- 把多个文件打包成一个压缩包 -- 这个压缩包和Winzip的压缩格式是一样的. 区别在于jar压缩的文件默认多一个META-INF的文件夹,该文件夹下包含一个Ma ...

  5. 在linux下运行java工程

    在linux 服务器上运行JAVA工程需注意.1: 在linux 上: /etc/profile  设置classpath 配置正确的jar 路径.2:  把本地JAVA工程做成一个jar包.如:1. ...

  6. 阿里Java架构师打包 FatJar 方法小结

    在函数计算(Aliyun FC)中发布一个 Java 函数,往往需要将函数打包成一个 all-in-one 的 zip 包或者 jar 包.Java 中这种打包 all-in-one 的技术常称之为 ...

  7. JAVA核心知识点--打包 FatJar 方法小结

    目录 什么是 FatJar 三种打包方法 1. 非遮蔽方法(Unshaded) 2. 遮蔽方法(Shaded) 3. 嵌套方法(Jar of Jars) 小结 参考阅读 原文地址:https://yq ...

  8. 如何用javac 和java 编译运行整个Java工程 (转载)【转】在Linux下编译与执行Java程序

    如何用javac 和java 编译运行整个Java工程 (转载)  http://blog.csdn.net/huagong_adu/article/details/6929817 [转]在Linux ...

  9. Java——jar命令

    把*.class压缩成一个文件,这样的文件就称为jar文件. 如果想要生成jar文件,直接使用JDK中bin目录里的jar.exe就可以将所有的类文件进行压缩. 当用户得到一个jar文件后,即可通过设 ...

随机推荐

  1. 实践2.4 ELF文件格式分析

    实践2.4 ELF文件格式分析 1.ELF文件头 查看/usr/include/elf.h文件: #define EI_NIDENT (16) typedef struct { unsigned ch ...

  2. mysql查询所有表行数

    SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'DATABASE_NAME' ;

  3. 嵌入式linux驱动开发之给linux系统添加温度传感器模块

    忙了几天,终于可以让ds18b20在自己的开发板的linux系统上跑了!虽然ds18b20不是什么新鲜玩意,但是想想知己可以给linux系统添加模块了还是有点小鸡冻呢! 虽然说现在硬件的资源非常丰富而 ...

  4. DDD 领域驱动设计-看我如何应对业务需求变化?

    tks: http://www.cnblogs.com/xishuai/p/3972802.html

  5. WCF 入门 (17)

    前言 看的是入门视频,就希望培养一个学习的习惯吧. 前段时间看了微软的SurfaceBook的视频,被惊艳到了,但是我没钱买啊... 第17集 WCF中未经处理的异常 Unhandled except ...

  6. 使用DOM动态创建标签

    本文是参考<javascript Dom 编程艺术>第八章的内容所写,用到的知识点,就是关于创建平稳的web页面. 使用DOM方法: getElementById() getElement ...

  7. 每天一个linux命令(15):whereis 命令

    whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m)和源代码文件(参数-s).如果省略参数,则返回所有信息. 和 find相比,whereis查找的速度 ...

  8. java设计模式--原始模型模式

    简介 原始模型模式属于对象的创建模式.通过一个原型对象来指明要创建对象的类型,然后用复制原型对象的方法来创建出更多同类型的对象. Java所有的类都是从java.lang.Object类继承来的,Ob ...

  9. C# 域用户操作(转)

    转自:http://www.sobnb.com/u/92/20081406091447.html using System; using System.DirectoryServices;   nam ...

  10. Java基础-代理

    我们书写执行一个功能的函数时,经常需要在其中写入与功能不是直接相关但很有必要的代 码,如日志记录,信息发送,安全和事务支持等,这些枝节性代码虽然是必要的,但它会带 来以下麻烦: 枝节性代码游离在功能性 ...