有时候为了更方便快捷的部署和执行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. 分享基于EF+MVC+Bootstrap的通用后台管理系统及架构(转)

    http://www.cnblogs.com/guozili/p/3496265.html 基于EF+MVC+Bootstrap构建通用后台管理系统,集成轻量级的缓存模块.日志模块.上传缩略图模块.通 ...

  2. 【网站搭建教程】黑手VIP卡盟搭建教程(无KEY)

    黑手VIP卡盟搭建教程(无KEY)教程介绍:第一课 卡盟介绍与课程流程.exe第七课 卡盟源码的搜集与选择_.exe第三课 卡盟域名之注册.exe第九课 IIS的本机架设_.exe第二课 卡盟域名之选 ...

  3. 信息安全系统设计基础实验四:外设驱动程序设计 20135211李行之&20135216刘蔚然

    北京电子科技学院(BESTI) 实 验 报 告 封面 课程:信息安全系统设计基础                                           班级:1352           ...

  4. HoloToolkit项目源码剖析 - Spatial Mapping功能实现

    就像我之前所描述的,HoloToolkit项目是微软基于Unity内置的底层API封装的一套工具集合,帮助我们快速使用Unity集成开发HoloLens应用. 本文主要通过源码研究其中Spatial ...

  5. 那些不好的Socket服务器设计

    基础Socket 自强的程序猿们都喜欢搞Socket,而且觉得最好自己来封装个组件出来,如果再往上,加入某种数据协议,让上层服务器开发照着此协议走,就是一个小小的框架了.于是,从头开始,最开始的服务器 ...

  6. jquery扩展函数详解(我的人生颠覆)

    作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 上次分析了jquery的源码 ...

  7. maven integration with eclipse 3.0.4 does not work with NTLM proxy

    Recently downloaded m2e(maven integration with eclipse). The version is 3.0.4. My environment is beh ...

  8. [Asp.net]c#中的斜杠和反斜杠

    引言 在外地出差,给客户部署项目,三家做的项目要在一起集成,这就造成数据格式不同,路径中的斜杠和反斜杠造成了很大的问题. 查了一下这方面的资料,这里做一些记录,算是一个小结吧. 正斜杠(/)与反斜杠( ...

  9. Office2010 pro附+激活工具

    office2003经典的办公,office2010,很不错的办公工具配合Win7,就绝配! office2010,我也近几天接手她,慢慢熟悉... 00安装: 01激活: 内含office2010安 ...

  10. Address already in use: JVM_Bind<null>:80

    Address already in use: JVM_Bind<null>:80 咱还是闲话少说,直接切入正题. 起因: 一直用Tomcat,但是前几天突然报错: java.net.Bi ...