java

位置:IT落伍者 >> java >> 浏览文章

java如何创建jar文件


发布日期:2022年10月11日
 
java如何创建jar文件

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

java jar MyJarFilejar

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

ManifestVersion:

MainClass: MainClassFile

CreatedBy: Your Company

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

ManifestVersion:

MainClass: comabcMainFrame

CreatedBy: Abc Company

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

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

URL url = getClass()getResource(String name)

或者

InputStream in = getClass()getResourceAsStream(String name)

例如

javaxswingImageIcon icon = new javaxswingImageIcon(gif

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

javaxswingImageIcon icon = new javaxswingImageIcon(getClass()getResource(gif))

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

ResourceBundlegetBundle(comabctest

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

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

用法jar {ctxu}[vfmM] [jar文件] [manifest文件] [C 目录] 文件名 …

选项

c 创建新的归档

t 列出归档内容的列表

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

u 更新已存在的归档

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

f 指定归档文件名

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

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

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

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

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

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

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

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

jar cvf classesjar Fooclass Barclass

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

文件归档到一个名为 classesjar 的归档文件中

jar cvfm classesjar mymanifest C foo/

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

jar cvfm abcAppjar MANIFESTMF **

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

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

+

|

+/METAINF/MANIFESTMF

|

+com/abc/MainFrameclass

选中程序根目录下的各个子目录及根目录下的文件 点击鼠标右键 选择添加到压缩包…命令 然后指定文件名为 abcAppjar 格式为 ZIP 最后点击确定即可完成

               

上一篇:Java编程语言的认识误区

下一篇:Java获得内存使用,磁盘情况