[Java] Java 打包成jar包 和 解压jar包

简介:

解压jar包

jar xf xxx.jar

打包成jar包  

方法一:通过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包

输入如下命令即可:

jar cvf counter.jar -C bin .  

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

 cd bin

jar cvf counter.jar . // "."代表当前路径  

  

二、打包成可运行的jar包

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

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

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

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

Manifest-Version: 1.0  

Created-By: rsljdkt   

Class-Path: .  

Main-Class: Main  

 

说明:

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

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

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

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

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

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

 说明:

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

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

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

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

 

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

执行如下命令即可:

 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按钮,打包完成。

分类:  Android Pro, Java基础
本文转自demoblog博客园博客,原文链接http://www.cnblogs.com/0616--ataozhijia/p/4817825.html如需转载请自行联系原作者

demoblog
相关文章
|
16天前
|
Java Windows
如何在windows上运行jar包/JAR文件 如何在cmd上运行 jar包 保姆级教程 超详细
本文提供了一个详细的教程,解释了如何在Windows操作系统的命令提示符(cmd)中运行JAR文件。
142 1
|
2月前
|
Java Maven 容器
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
使用IntelliJ IDEA的Artifacts功能,可以将项目依赖的第三方jar包打包进jar文件中,实现双击jar包即可直接运行。
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
|
2月前
|
Java Maven
构建Springboot项目、实现简单的输出功能、将项目打包成可以执行的JAR包(详细图解过程)
这篇文章详细介绍了构建SpringBoot项目的过程,包括新建工程、选择环境配置、添加依赖、项目结构说明,并演示了如何编写一个简单的Controller控制器实现输出功能,最后讲解了如何使用Maven将项目打包成可执行的JAR包,并提供了运行JAR包的命令和测试效果。
构建Springboot项目、实现简单的输出功能、将项目打包成可以执行的JAR包(详细图解过程)
|
2月前
|
Java Maven C++
【Azure Developer】记录一次使用Java Azure Key Vault Secret示例代码生成的Jar包,单独运行出现 no main manifest attribute, in target/demo-1.0-SNAPSHOT.jar 错误消息
【Azure Developer】记录一次使用Java Azure Key Vault Secret示例代码生成的Jar包,单独运行出现 no main manifest attribute, in target/demo-1.0-SNAPSHOT.jar 错误消息
|
2天前
|
安全 Java UED
Java中的多线程编程:从基础到实践
本文深入探讨了Java中的多线程编程,包括线程的创建、生命周期管理以及同步机制。通过实例展示了如何使用Thread类和Runnable接口来创建线程,讨论了线程安全问题及解决策略,如使用synchronized关键字和ReentrantLock类。文章还涵盖了线程间通信的方式,包括wait()、notify()和notifyAll()方法,以及如何避免死锁。此外,还介绍了高级并发工具如CountDownLatch和CyclicBarrier的使用方法。通过综合运用这些技术,可以有效提高多线程程序的性能和可靠性。
|
1天前
|
缓存 Java UED
Java中的多线程编程:从基础到实践
【10月更文挑战第13天】 Java作为一门跨平台的编程语言,其强大的多线程能力一直是其核心优势之一。本文将从最基础的概念讲起,逐步深入探讨Java多线程的实现方式及其应用场景,通过实例讲解帮助读者更好地理解和应用这一技术。
17 3
|
6天前
|
Java 调度 UED
深入理解Java中的多线程与并发机制
本文将详细探讨Java中多线程的概念、实现方式及并发机制,包括线程的生命周期、同步与锁机制以及高级并发工具。通过实例代码演示,帮助读者理解如何在Java中有效地处理多线程和并发问题,提高程序的性能和响应能力。
|
3天前
|
缓存 安全 Java
使用 Java 内存模型解决多线程中的数据竞争问题
【10月更文挑战第11天】在 Java 多线程编程中,数据竞争是一个常见问题。通过使用 `synchronized` 关键字、`volatile` 关键字、原子类、显式锁、避免共享可变数据、合理设计数据结构、遵循线程安全原则和使用线程池等方法,可以有效解决数据竞争问题,确保程序的正确性和稳定性。
11 2
|
5天前
|
存储 安全 Java
Java-如何保证线程安全?
【10月更文挑战第10天】

热门文章

最新文章