\>jar cf jar-file input-file(s)
/*
说明,windows下和UNIX下对目录结构的分隔符习惯不同,前者为\,后者为/ ,本文仅仅为了说明问题,并不严格加以说明。——注意,无论任何平
台,在manifest文件中均采用/
*/
/*
该形式的命令在当前目录下创建一个jar-file
c开关指明“创建”一个jar文件
f开关指明输出到文件,而不是stdout(标准输出)
jar-file如果不指明后缀,则默认为*.jar
空格用于分隔多个输入文件,可以使用通配符“*”
有必要时指明目录
开关出现的顺序不重要,但是如果有m开关则另当别论。
该命令默认创建一个manifest文件
*/
/*
对于java版本1,jar文件仅支持ASCII作文件名,java版本2则支持UTF-8编码的文件名。
*/
/*
关于创建,可用的其他开关:
v 当jar文件创建时,在stderr(java版本1)或stdout(java版本2)产生冗余(verbose)输出。报告添加到jar的文件名录。
0 (zero)指明不要压缩。
M 指明不要产生默认的manifest文件。
m 添加手工已编制好的manifest文件:
\>jar cmf existing-manifest jar-file input-file(s)
-C 在操作过程中转变目录(仅对java版本2)。
*/
/*
一个例子。
假设,如下目录结构(windows下):
TicTacToe\TicTacToe.class (文件)
TicTacToe\audio (子目录,该层下全是au文件)
TicTacToe\images (子目录,该层下全是gif文件)
如果要将该东东压入jar文件TicTacToe.jar,应在TicTacToe目录中(!)执行下面命令:
TicTacToe>jar cvf TicTacToe.jar TicTacToe.class audio images
jar程序会自动将audio和images目录及其子目录一咕脑(recursively)全压入TicTacToe.jar文件,该文件将出现于 TicTacToe\TicTacToe.jar
因为使用了verbose output开关,可以看到类似如下的输出:
adding: TicTacToe.class (in=3825) (out=2222) (deflated 41%)
adding: audio/ (in=0) (out=0) (stored 0%)
adding: audio/beep.au (in=4032) (out=3572) (deflated 11%)
adding: audio/ding.au (in=2566) (out=2055) (deflated 19%)
adding: audio/return.au (in=6558) (out=4401) (deflated 32%)
adding: audio/yahoo1.au (in=7834) (out=6985) (deflated 10%)
adding: audio/yahoo2.au (in=7463) (out=4607) (deflated 38%)
adding: images/ (in=0) (out=0) (stored 0%)
adding: images/cross.gif (in=157) (out=160) (deflated -1%)
adding: images/not.gif (in=158) (out=161) (deflated -1%)
如果:
TicTacToe>jar cvf0 TicTacToe.jar TicTacToe.class audio images
则表示只备份不压缩。
如果该目录内全是需要jar掉的文件及其相应目录结构:
TicTacToe>jar cvf TicTacToe.jar *
是比较简洁的写法。
如果不特别使用开关m或M,默认的manifest文件将产生于
META-INF/MANIFEST.MF
继承了GZIP的特点,-C开关用于跳到某目录,以改变所存入jar文件的目录结构。多半用于将原来位于不同目录结构的文件作jar时聚合在一起。例如:
TicTacToe>jar cf ImageAudio.jar -C images . -C audio .
产生的jar文件内容和结构:
META-INF/MANIFEST.MF
cross.gif
not.gif
beep.au
ding.au
return.au
yahoo1.au
yahoo2.au
(现在假设我们images子目录下还有子目录,像这样:
TicTacToe\images\jpg
jpg子目录下还有一些*.jpg文件那以上命令的结果应该是:
META-INF/MANIFEST.MF
jpg/AMAKUSA.jpg
jpg/UKYO.jpg
cross.gif
not.gif
beep.au
ding.au
return.au
yahoo1.au
yahoo2.au
说明了-C的真正含义。
)
*/
分享到:
相关推荐
总结,构建JAR包是Java开发中的基础操作,涉及多种工具和方法,如命令行、Maven、Gradle等。理解并熟练掌握这些知识点对于Java开发者来说至关重要,无论是在小型项目还是大型项目中,都能提高开发效率和代码管理的...
1.把此jar文件夹在加载到eclipse中(鼠标右键build path - configure build path-libraries-add jars-选择此jar文件(本地路径)-ok-apply) 2.在代码中,把鼠标光标放在要查看源码的类名称上,按住键盘Ctrl键,当光标...
"MyEclipse8.5安装Fatjar和制作可执行jar方法" MyEclipse8.5是 Java integrated development environment (IDE),它提供了许多有用的功能和插件来帮助开发者快速构建和部署Java应用程序。Fatjar是一个插件,允许...
例如,对于上面的 `MyService`,你可以创建一个名为 `MyServiceImpl` 的类,实现 `echo` 方法。 6. **打包成 `.jar` 文件** 一旦实现了服务,你可以使用 Maven 或 Gradle 将整个项目打包成 `.jar` 文件。在 Maven ...
使用: 安装后,可以在 [Export] 向导里找到 "Build Fat-JAR",然后根据提示即可完成打包。 打包完成之后,可以直接通过java -jar 执行打包好的jar文件,不需要设置classpath,以及配置其他jar文件。
6. **依赖管理**:在Ant项目中,`build.xml`会明确指定项目所依赖的外部库,如`jsch-0.1.51.jar`。Ant提供了`<classpath>`元素来管理这些依赖,确保在构建过程中正确加载所需的类。 7. **环境配置**:Ant可以适应...
java运行依赖jar包
jar包,亲测可用
用Git实时将开源和不开源的部分编译在一起,获取spigot和bukkit服务端
Ant是一个流行的Java构建工具,它允许我们通过配置XML文件(build.xml)来执行自动化构建任务,包括jar文件的创建和合并。下面我们将详细讨论如何使用Ant实现这个目标。 首先,确保你已经安装了Ant,并且在项目中...
本篇文章将详细阐述Java打Jar包的方法,并通过实例进行演示。 1. **什么是JAR文件?** JAR文件是Java平台上的归档文件格式,用于集合多个类文件、资源文件以及元数据。它可以包含Java类、图像、音频、文本文件等,...
【fatjar插件安装方法及jar包】 在Java开发中,常常需要将多个类和库合并成一个可执行的JAR文件,以便于分发和运行。这时,fatjar插件就显得尤为重要。fatjar,全称为“fat JAR”,指的是包含所有依赖库的大型JAR...
spring-build-src-4.0.0.RELEASE.jar
gbase的链接jar包,版本为 8.3.81.35-build52.2-bin
java运行依赖jar包
通过上述方法,我们可以有效地解决Spring Boot项目编译后无法扫描子JAR包中注解的问题。这种方法不仅能够简化主项目的依赖关系,还能避免重复依赖带来的冲突问题。对于那些希望优化多模块Spring Boot项目构建流程的...
以下是两种在MyEclipse中生成可执行JAR文件的方法: ### 无外部依赖的JAR文件 当你的Java项目没有引用任何外部的JAR包时,生成可执行JAR文件的过程相对简单。在MyEclipse中,你可以按照以下步骤操作: 1. 打开...
"Maven引入本地Jar包并打包进War包中的方法" Maven是一种流行的项目管理工具,主要用于Java项目的构建、测试和部署。在实际开发中,我们经常需要引入本地Jar包以满足项目的需求。本文将介绍Maven引入本地Jar包并...
Java通过ganymed-ssh2-build210.jar库实现SSH远程连接Linux终端是一个常见的应用场景,主要用于自动化运维、系统管理或者开发过程中需要与Linux服务器交互的场景。ganymed-ssh2-build210.jar是Java的一个开源SSH库,...
android studio xposed教程 专用89版本!Xposed模块也是一个Android程序,编译之后也是一个apk安装包。与普通程序不一样的地方是如下四点:...XposedBridgeApi-xx.jar与build.gradle 实现hook操作的具体代码 xposed_Init