你的用户运行Java applications时会碰到困难吗?你可以创建一个Windows的BAT文件或UNIX的SH文件来帮助他调用application。但是假如你有GUI,那么你就有比这简单得多的办法来解决这个问题了。
在许多现代的桌面上,.jar文件被设置成自动运行。这使得在使用者看来.jar文件的应用是很普通的。他们下载了这个东西,放在他们的桌面上,然后当他们想用的时候点一下就可以了。
这个魔术变起来惊人的轻易。每个.jar文件都有一个清单,它们以如下的文件名保存着:
META-INF/MANIFEST.MF
jar命令提供了一个-m选项以指定要用来做清单的文件。以下代码就是这种方法的一个应用。我们来创建一个JarCreator:
jar mf META-INF/JarCreator.mf
com.generationjava.tools.JarCreator.class
一个非常基本的清单包含了版本号和制造商,制造商通常也就是JDK的卖主。比如,Mac OS X中的清单就是象这个样子:
Manifest-Version: 1.0
Created-By: 1.3.0 (Apple Computer, Inc.)
但是,真正的动作却是开始于额外的第三行:
Manifest-Version: 1.0
Main-Class: com.generationjava.util.JarCreator
Created-By: 1.3.0 (Apple Computer, Inc.)
第三行提供了一个类的名字,静态的主函数就是在这个类中运行的。它等价于在这个类中不给任何参数的运行java命令。
一旦.jar被点击,com.generationjava.util.JarCreator类的主函数将被调用,应用也就可以实现了。