`

Jar 的 build 方法

    博客分类:
  • Java
阅读更多
\>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的真正含义。
  )

  */
分享到:
评论

相关推荐

    build jar 包

    总结,构建JAR包是Java开发中的基础操作,涉及多种工具和方法,如命令行、Maven、Gradle等。理解并熟练掌握这些知识点对于Java开发者来说至关重要,无论是在小型项目还是大型项目中,都能提高开发效率和代码管理的...

    ganymed-ssh2-build210-sources.jar.zip

    1.把此jar文件夹在加载到eclipse中(鼠标右键build path - configure build path-libraries-add jars-选择此jar文件(本地路径)-ok-apply) 2.在代码中,把鼠标光标放在要查看源码的类名称上,按住键盘Ctrl键,当光标...

    绝对可行,图解MyEclipse8.5安装fatjar以及制作可执行jar方法!

    "MyEclipse8.5安装Fatjar和制作可执行jar方法" MyEclipse8.5是 Java integrated development environment (IDE),它提供了许多有用的功能和插件来帮助开发者快速构建和部署Java应用程序。Fatjar是一个插件,允许...

    thrift java build jar

    例如,对于上面的 `MyService`,你可以创建一个名为 `MyServiceImpl` 的类,实现 `echo` 方法。 6. **打包成 `.jar` 文件** 一旦实现了服务,你可以使用 Maven 或 Gradle 将整个项目打包成 `.jar` 文件。在 Maven ...

    Build Fat-JAR

    使用: 安装后,可以在 [Export] 向导里找到 "Build Fat-JAR",然后根据提示即可完成打包。 打包完成之后,可以直接通过java -jar 执行打包好的jar文件,不需要设置classpath,以及配置其他jar文件。

    Ant项目所需要用到的jar以及build.xml

    6. **依赖管理**:在Ant项目中,`build.xml`会明确指定项目所依赖的外部库,如`jsch-0.1.51.jar`。Ant提供了`<classpath>`元素来管理这些依赖,确保在构建过程中正确加载所需的类。 7. **环境配置**:Ant可以适应...

    buildnumber-maven-plugin-1.4.jar

    java运行依赖jar包

    buildtools-1.0.0.jar

    jar包,亲测可用

    BuildTools.jar

    用Git实时将开源和不开源的部分编译在一起,获取spigot和bukkit服务端

    Java打Jar包方法和实例

    本篇文章将详细阐述Java打Jar包的方法,并通过实例进行演示。 1. **什么是JAR文件?** JAR文件是Java平台上的归档文件格式,用于集合多个类文件、资源文件以及元数据。它可以包含Java类、图像、音频、文本文件等,...

    fatjar插件安装方法及jar包

    【fatjar插件安装方法及jar包】 在Java开发中,常常需要将多个类和库合并成一个可执行的JAR文件,以便于分发和运行。这时,fatjar插件就显得尤为重要。fatjar,全称为“fat JAR”,指的是包含所有依赖库的大型JAR...

    spring-build-src-4.0.0.RELEASE.jar

    spring-build-src-4.0.0.RELEASE.jar

    ganymed-ssh2-build250.rar,jar包,源码,例子,javadoc

    最后,`ganymed-ssh2-build250-javadoc.jar`是API文档,它详尽地解释了库中每个类、接口和方法的作用及用法,是开发者编写代码时的重要参考资料。通过Javadoc,开发者可以方便地查找所需的功能,了解其参数和返回值...

    gbase链接jar包 版本为 8.3.81.35-build52.2-bin

    gbase的链接jar包,版本为 8.3.81.35-build52.2-bin

    springboot编译jar包后无法扫描子jar包中的注解解决方法

    通过上述方法,我们可以有效地解决Spring Boot项目编译后无法扫描子JAR包中注解的问题。这种方法不仅能够简化主项目的依赖关系,还能避免重复依赖带来的冲突问题。对于那些希望优化多模块Spring Boot项目构建流程的...

    build-helper-maven-plugin-1.8.jar

    java运行依赖jar包

    Maven引入本地Jar包并打包进War包中的方法

    "Maven引入本地Jar包并打包进War包中的方法" Maven是一种流行的项目管理工具,主要用于Java项目的构建、测试和部署。在实际开发中,我们经常需要引入本地Jar包以满足项目的需求。本文将介绍Maven引入本地Jar包并...

    myelipse生成可执行jar文件方法

    以下是两种在MyEclipse中生成可执行JAR文件的方法: ### 无外部依赖的JAR文件 当你的Java项目没有引用任何外部的JAR包时,生成可执行JAR文件的过程相对简单。在MyEclipse中,你可以按照以下步骤操作: 1. 打开...

    XPOSED依赖JAR包下载, XposedBridgeApi-89.jar

    android studio xposed教程 专用89版本!Xposed模块也是一个Android程序,编译之后也是一个apk安装包。与普通程序不一样的地方是如下四点:...XposedBridgeApi-xx.jar与build.gradle 实现hook操作的具体代码 xposed_Init

    ganymed-ssh2-build210.jar

    标题中的“ganymed-ssh2-build210.jar”是一个特定版本的Java库,用于实现SSH(Secure Shell)协议,使Java程序能够与Linux服务器进行安全通信。SSH是一种网络协议,广泛用于在不安全的网络环境中提供加密的远程登录...

Global site tag (gtag.js) - Google Analytics