知识大全 java如何创建jar文件

Posted 文件

篇首语:少年恃险若平地,独倚长剑凌清秋。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 java如何创建jar文件相关的知识,希望对你有一定的参考价值。

  并不是所有类型的 Java 应用程序都能打包到单独的一个 JAR 文件中去 必须符合一定的条件 一个 Java 应用程序的所有文件才能打包到一个文件中去 另外 JAR 文件有两种 一种是有清单(manifest)文件的 一种是没有清单文件的(这种主要用来存放 Java 库文件) 清单文件有许多作用 我这里只讨论那种可以使用 Java 来运行 JAR 文件的清单文件 就是使用命令

  java jar MyJarFile jar

  可以直接运行的 JAR 文件 这种 JAR 文件的清单文件的内容如下所示

  Manifest Version:

  Main Class: MainClassFile

  Created By: Your Company

   例如 假定你的程序里面的主程序是 abc MainFrame 那么你的这个清单文件的内容是

  Manifest Version:

  Main Class: abc MainFrame

  Created By: Abc Company

   然后我想讨论一下打包到单独 JAR 文件的应用程序的编写需要注意的问题

  程序的资源文件(如* gif * jpg * jpeg * properties 等等)不能使用物理路径 只能使用相对于当前类文件的相对资源路径 只有这样才能保证打包以后程序才能找到这些资源文件 那么 这些文件在打开的时候都要使用下列语句

  URL url = getClass() getResource(String name)

  或者

  InputStream in = getClass() getResourceAsStream(String name)

   例如

  javax swing ImageIcon icon = new javax swing ImageIcon( gif )

  那么打包后的程序将不能找到这个图片 因为它引用了一个物理路径的图片 它应该改成这样

  javax swing ImageIcon icon = new javax swing ImageIcon(getClass() getResource( gif ))

   其它的资源文件的使用也与此相似 不过属性文件(* properties)的使用 Java 自动会加载 JAR 文件中的属性文件 例如

  ResourceBundle getBundle( abc test )

  那么 这个文件只要放在 JAR 文件目录结构下的 /abc/test properties Java 就能自动找到这个文件

  接着我想讨论一下使用 JAR 工具如何来创建 JAR 文件 这个工具可以在 <JDK_install_HOME>/bin 下找到 文件名在 Win 版下为 jar exe Unix 下为 jar 在命令行窗口下输入 jar 命令 将看到下列输出

  用法 jar ctxu[vfm M] [jar 文件] [manifest 文件] [ C 目录] 文件名 …

  选项

   c 创建新的归档

   t 列出归档内容的列表

   x 展开归档中的命名的(或所有的〕文件

   u 更新已存在的归档

   v 生成详细输出到标准输出上

   f 指定归档文件名

   m 包含来自指定的清单(manifest〕文件的清单(manifest〕信息

   只存储方式 未用ZIP压缩格式

   M 不产生所有项的清单(manifest〕文件

   i 为指定的jar文件产生索引信息

   C 改变到指定的目录 并且包含下列文件

  如果一个文件名是一个目录 它将被递归处理

  清单(manifest〕文件名和归档文件名都需要被指定 按 m 和 f 标志指定的相同顺

  示例 将两个class文件归档到一个名为 classes jar 的归档文件中

  jar cvf classes jar Foo class Bar class

  示例 用一个存在的清单(manifest〕文件 mymanifest 将 foo/ 目录下的所有

  文件归档到一个名为 classes jar 的归档文件中

  jar cvfm classes jar mymanifest C foo/

  假设你想将上面的 abc MainFrame 为主程序的一个应用程序打包为一个单独的 JAR 文件 那么首先在程序的根目录下建立内容如前所述的清单文件 文件名为 MANIFEST MF 然后在命令行窗口下 转变当前目录为程序根目录 输入下列命令

  jar cvfm abcApp jar MANIFEST MF * *

   那么 会使用现有的清单文件创建一个名为 abcApp jar 的文件 并将目录下的所有文件(包括子目录)加入此 JAR 文件中

  而如果希望使用非 JAR 工具建立 JAR 文件 建议使用 WinRAR 首先还是需要建立一个清单文件(名字必须为MANIFEST MF) 向此文件中写入同使用 JAR 工具时一样的内容 接着需要建立一个META INF子目录 然后将 MANIFEST MF 放入此目录 接着就可以保持目录结构将所有这些内容使用 WinRAR 压缩为 ZIP 格式的文件 文件名取为 abcApp jar 即可 如下所示 目录结构为

  +

  |

  + /META INF/MANIFEST MF

  |

  + /abc/MainFrame class

cha138/Article/program/Java/hx/201311/27127

相关参考

知识大全 程序内部剖析——JAR 文件揭密

程序内部剖析——JAR文件揭密  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  大多数Java程序

知识大全 经常会用得上的jar命令列表清单

  用法jarctxu[vfmM][jar文件][manifest文件][C目录]文件名  选项    c 创建新的存档    t 列出存档内容的列表    x 展开存档中的命名的(或所有的〕文件  

知识大全 Java创建文件夹及文件

Java创建文件夹及文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  packagexjuti

知识大全 从JAR文件中读取文件

从JAR文件中读取文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!      作者JohnZuk

知识大全 制作可以执行的 JAR 文件包及 jar 命令详解

制作可以执行的JAR文件包及jar命令详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  作者:

知识大全 Jar文件包间接及Jar命令开发实例详解

Jar文件包间接及Jar命令开发实例详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  常常看到

知识大全 头文件生成器-javah.exe

  javah头文件生成器  javah程序创建C头文件和存根文件这些是把本地C成员函数包入java所需要的被创建的头文件给出了有关java类的信息这些信息是C成员函数与java类交换数据所必需的存根

知识大全 怎样制作可执行的java程序

  常常在网上看到有人询问如何把java程序编译成exe文件通常回答只有两种一种是制作一个可执行的JAR文件包然后就可以像chm文档一样双击运行了而另一种是使用JET来进行  编译但是JET是要用钱买

知识大全 Jar内外配置文件的读取

Jar内外配置文件的读取  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一个简单的例子提供读取J

知识大全 Java程序打成Jar包全过程

Java程序打成Jar包全过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java程序完成以