一起学习
摘要
这篇技巧显示了如何将一个不可获取的Java档案(JAR)变成可获取的,而没必要直接操作列表文件。你将学习开发一个短程序能使任何JAR用java –jar命令运行或在一个象Widnows操作系统上用双击操作使其运行。
你能够容易地将一个应用程序的整个类及资源打包进一个Java档案(JAR)。实际上,这是jar文件的其中一个目的。另一个目的是让用户容易执行存贮在档案中的应用程序。为什么当它们能够作为第一类正确依靠本地执行时,jar文件在Java世界中仍仅作为档案功能被看成第二类成员?
要执行一个jar文件,你可以使用java命令中的-jar选项。例如,说你有一个可获取的jar文件叫myjar.jar,这是因为这个文件是可获取的,你能够象这样执行它:java -jar myjar.jar.。
换句话说,当在一个象微软Windows操作系统上安装的Java运行环境(JRE)中,你能够通过双击JVM相关的jar文件来运行应用程序。这些JARs就一定是可获取的。
问题是:你怎样使一个JAR可获取?
清单文件和main-类入口
在多数JARs中,一个叫作MANIFEST.MF的文件存贮在一个叫作META-INF的目录中。在那些文件中,一个叫作Main-类的专门入口告诉java –jar命令哪个类将要被执行。
问题是你必须自己正确地将这些专门的入口添加到清单文件中——它必须在一个特定的地方并且具有一种特定的格式。然而,我们其中一些人不喜欢编辑配置文件。
让API为你作这些
自从Java 1.2以来,一个叫java.util.jar的包让你与jar文件一起工作。(注意:它是在java.util.zip包上建立的),jar包让你很容易地经由Manifest类操作专门的清单文件。
让我们用这个API写一个程序。首先,这个程序必须了解三件事情:
1.我们希望使能够被获取的JAR
2.我们希望被执行的main类(这个类必须存在于JAR中)
3.我们输入的新JAR的名称,因为我们不能简单地覆盖文件
写程序
上面的列表将组成我们程序的参数。基于这一点,让我们为这个程序选择一个合适的名称。MakeJarRunnable 怎么样?
检查main的参数
假设我们的主入口点是一个标准的main(String[])方法。我们首先应该在这里检查程序的参数:
if (args.length != 3) {
System.out.println("Usage: MakeJarRunnable "
"
阅读(182) | 评论(0) | 转发(0) |