l MANIFEST.MF - 打包清单。它是打包的关键性文件,主要是设置执行入口类和支持库的路径,在运行 Java 应用程序时是要根据此文件中给出的信息来查找入口类和支持库。
l 支持包 -如果 Java 应用程序用到了一些 类库 包,那么就必须将这些包也复制到程序运行目录,否则程序将无法运行。如 swt 组件支持包 swt.jar , jface 组件支持包 jface.jar 。这些包都要在 MANIFEST.MF 文件中设置好。
l 资源文件 - 例如程序中用到 本地化文件,资源文件等,需要把这些资源文件 复制到程序运行目录,否则程序将无法运行。
( 1 ) Eclipse 提供了用于打包项目的“导出”向导,但本例运行此向导之前先需要创建一个 MANIFEST.MF 清单文件,其内容如下:
Manifest-Version: 1.0
Main-Class: com.mdragonway.agps.VGListener
Class-Path: ./lib/log4j.jar ./lib/msbase.jar ./lib/mssqlserver.jar
./lib/msutil.jar ./lib/weblogic.jar ./lib/xbean.jar
说明:
l Manifest-Version - 指定清单文件的版本号
l Main-Class - 指定程序运行的入口类。本例设为运行 4.5.2 节开发的向导式对话框。注 意:类名后不要加 class 扩展名
l Class-Path - 指定支持库的路径。“ . ”指程序运行目录,即导出的 JAR 包所在目录。程序运行时依据 Class-Path 项的设置路径来查找支持库。每一个支持库之间用空格隔开。在这里 jface.jar 需要用到 runtime.jar 包,所以 runtime.jar 包也要加入到 Class-Path 中。
l 除了入口类的包名和类名之外,其他设置项都不分大小写,比如: Class-Path 写成 class-path 或 CLASS-PATH 也可以, swt.jar 写成 SWT.JAR 也行。
(2)将清单文件保存下来,建议放在工程项目的根目录下。它的文件名可以任意取,本例取名为manifes.txt,利用一 些工具如Eclipse向导在打包时会自动的将manifes.txt的内容复制到JAR包的META-INF目录下的MANIFEST.MF文件中。
Manifest-Version: 1.0
Main-Class: com.mdragonway.agps.VGListener
Class-Path: ./lib/log4j.jar ./lib/msbase.jar ./lib/mssqlserver.jar
./lib/msutil.jar ./lib/weblogic.jar ./lib/xbean.jar
把生成的jar文件
3.复制Java 应用程序的支持包及本地化文件
在myswt_application目录下创建一个批处理程序run.bat(名字任取,扩展名必须是bat),其内容仅一句语句,如下:
javaw -jar agps.jar
说明:
l javaw对应c:\jdk\jre\bin\javaw.exe文件,如果windows提示命令未发现,则需要将c:\jdk\jre\bin路径加入到windows环境变量path中。
l 在运行程序的时候有一个讨厌的黑色命令行窗口,要去掉它,可以将run.bat内容更改如下:“start javaw -jar myswt.jar”,start是指调用了windows的“运行”命令。
l 如果想将swt-win32-3063.dll也放在单独的目录中,如“D:\myswt_application\resources”目录,则需将run.bat内容更改为:
start javaw -Djava.library.path=./resources/ -jar myswt.jar
上述四步骤便可以完成一个带有各种资源(例如配置文件,本地化文件等)的工程的打包发布。