方法一:通过jar命令

jar命令的用法:

下面是jar命令的帮助说明:

用法:jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...

选项包括:
    -c  创建新的归档文件
    -t  列出归档目录
    -x  解压缩已归档的指定(或所有)文件
    -u  更新现有的归档文件
    -v  在标准输出中生成详细输出
    -f  指定归档文件名
    -m  包含指定清单文件中的清单信息
    -e  为捆绑到可执行 jar 文件的独立应用程序
        指定应用程序入口点
    -0  仅存储;不使用任何 ZIP 压缩
    -M  不创建条目的清单文件
    -i  为指定的 jar 文件生成索引信息
    -C  更改为指定的目录并包含其中的文件
如果有任何目录文件,则对其进行递归处理。
清单文件名、归档文件名和入口点名的指定顺序
与 "m"、"f" 和 "e" 标志的指定顺序相同。

示例 1:将两个类文件归档到一个名为 classes.jar 的归档文件中:
       jar cvf classes.jar Foo.class Bar.class
示例 2:使用现有的清单文件 "mymanifest" 并
           将 foo/ 目录中的所有文件归档到 "classes.jar" 中:
       jar cvfm classes.jar mymanifest -C foo/ .

下文假设编译后的class文件在bin目录下

一、打包成一般的jar包

输入如下命令即可:

  1. jar cvf counter.jar -C bin .

其中,“-C bin”实际上是告诉jar命令先cd到bin目录下,再在此目录执行没有参数“-C bin”的命令,等价于:

  1. cd bin
  2. jar cvf counter.jar . // "."代表当前路径

二、打包成可运行的jar包

要打包成可运行的jar包,有两种方法,一是手动创建MANIFEST.MF文件,并在其中指定主类;二是使用jar的-e参数指定可运行jar包的入口点(即main类的完全名称).

以Java源代码行数统计程序的打包为例,演示如何打包:

1. 手动创建MANIFEST.MF文件:

1)首先编辑MANIFEST.MF文件,内容如下:

  1. Manifest-Version: 1.0
  2. Created-By: rsljdkt
  3. Class-Path: .
  4. Main-Class: Main

说明:

第一行指定清单的版本,若无,则JDK默认生成:Manifest-Version: 1.0

第二行指明创建的作者,若无,则JDK默认生成Created-By: 1.6.0_22(Sun Microsystems Inc.)

第三行指定主类所在类路径,

第四行指明程序运行的主类

2)使用jar命令进行打包:

  1. jar cvfm counter.jar MANIFEST.MF -C bin .

说明:

参数f:指定打包后的包名。

参数m:指定自定义的MANIFEST.MF清单文件,否则,JDK会自动生成不包含Main-Class的默认清单。

参数c:指定是创建新的归档文件。

参数v:在标准输出中生成详细输出,该选项是可选的。

2. 使用-e参数指定入口点:

执行如下命令即可:

  1. jar cvfe counter.jar Main -C bin .

方法二:使用Eclipse的Export功能:

一、打包成一般的jar包:

步骤如下:

1)在要打包的项目上右击,选择Export

2)在弹出的窗口中,选择Java -> JAR File,然后点击next按钮

3)在JAR File Specification窗口中,设置打包成的文件名和存放位置,点击两侧next

4)在JAR Manifest Specification窗口中,设置MANIFEST.MF清单文件的配置,

若仅仅打包成单纯的jar包的话,不用做任何修改,采取默认即可

若打包成可执行jar包的话,可以使用已存在的MANIFEST文件或者直接选择Main class

5)点击Finish按钮,完成打包。

二、打包成可运行的jar包

步骤如下:

1)在要打包的项目上右击,选择Export

2)在弹出的窗口中,选择Java -> Runnable JAR File,然后点击next按钮

3)在Runnable JAR File Specification窗口中,选择Launch configuration和Export destination

4)点击Finish按钮,打包完成。

出处:http://rsljdkt.iteye.com/blog/1044188

Java程序打包成jar包的更多相关文章

  1. 把java项目打包成jar包并可以直接运行【我】

    首先创建一个maven的jar项目,然后代码写好后,在项目右键,导出: 选择java下面的可运行的jar文件: 下一步: 要注意的是: launch configuration 此选项是指定选中要导出 ...

  2. 转载:java程序打包成jar 配置文件信息路径

    一个普通的java project,里面引用了config.properties配置文件,将项目打成Runnable jar,然后将config.properties放到打包后的jar路径下,执行该j ...

  3. java程序打包成jar 配置文件信息路径

    一个普通的java project,里面引用了config.properties配置文件,将项目打成Runnable jar,然后将config.properties放到打包后的jar路径下,执行该j ...

  4. 将java project打包成jar包,web project 打包成war包的几种演示 此博文包含图片

    转: http://blog.csdn.net/christine_ruan/article/details/7491559 http://developer.51cto.com/art/200907 ...

  5. 将java project打包成jar包,web project 打包成war包的几种演示

    将java项目打包成jar 第一种:MyEclipse将java项目打包成jar. 1,右击项目,选择export . 2,点击Java,选择JAR file . 3,在JAR file文本中浏览打包 ...

  6. 把Java程序打包成jar文件包并执行

    1.首先要确认自己写的程序有没有报错. 2.第一次我写的是Web Project到现在,我一直没有执行成功,所以最好创建的是java Project 打包步骤: 1.在项目上,右键,选择Export. ...

  7. Java之 将程序打包成jar包

    准备材料: 1.java文件: Helloworld.java package com.ray; public class HelloWorld{ public static void main(St ...

  8. 将eclipse java程序打包成jar的总结(包括工程中没有引用外部jar包和有引用外部jar包两种情况)

    一.当eclispe java工程中没有引用外部jar包时: 选中工程---->右键,Export...--->Java--->JAR file--->next-->填写 ...

  9. java程序打包成jar文件,使用到第三方jar包

    1.右击工程选择Export—>选择JAR file—>选择NEXT,如下图所示 2.选择需要打包的工程,并且选择存放目录,我这放在 E:\jartest 目录下,然后点击NEXT,如下图 ...

随机推荐

  1. 树莓派 安装 OpenCV 使用CMake 编译工程 最新版2015

    一.安装make,cmake sudo apt-get install make sudo apt-get install cmake 二.下载deb包 去这里下载libopencv_2.4.10.d ...

  2. C#实现CAD数据转shape或mdb

    jojojojo2002 原文C#实现CAD数据转shape或mdb 本文所指的CAD数据为不带空间参考和扩展数据的数据.如果CAD带了空间参考或是扩展属性数据的话,就要采用图形和属性分离的方法转CA ...

  3. 《A Tour of PostgreSQL Internals》学习笔记——系统表和数据类型

    上周末学习了<A Tour of PostgreSQL Internals>的第一部分(View 1),今天我们继续打开书本,继续View 2 部分. View 2 Postgresql的 ...

  4. 开启Nginx的gzip压缩功能详解

    默认情况下,Nginx的gzip压缩是关闭的, gzip压缩功能就是可以让你节省不少带宽,但是会增加服务器CPU的开销哦,Nginx默认只对text/html进行压缩 ,如果要对html之外的内容进行 ...

  5. Multi-Device Hybrid Apps for Visual Studio CTP2.0

    http://msdn.microsoft.com/en-us/library/dn771545.aspx http://www.microsoft.com/en-us/download/detail ...

  6. 读取Assets中的文件数据

    try { // 返回的字节流 InputStream is = getResources().getAssets().open("info.txt"); // 当读取时,属于文本 ...

  7. NSIS学习笔记(转)

    转自:http://blog.csdn.net/lee353086/article/details/45919901 NSIS学习笔记Date:2015-05-20Author:kagulaEnv:V ...

  8. 【LeetCode】242 - Valid Anagram

    Given two strings s and t, write a function to determine if t is an anagram of s. For example,s = &q ...

  9. UML的类图关系分为: 关联、聚合/组合、依赖、泛化(继承)

    UML的类图关系分为: 关联.聚合/组合.依赖.泛化(继承).而其中关联又分为双向关联.单向关联.自身关联:下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里. 1.关联 双向关联:C1- ...

  10. 笔记:修改centos的IP地址相关配置

    最近碰到不少认识的人问相关问题 索性做个笔记 图个方便 修改eth0的网卡配置vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0BOOTPR ...