黑马程序员技术交流社区

标题: 应用程序的打包和发行 (一) [打印本页]

作者: 李江    时间: 2013-10-18 20:27
标题: 应用程序的打包和发行 (一)
Java应用程序可以脱离Eclipse运行,但在运行之前要把应用程序打成一个JAR包,Eclipse下打包的方式方法和标准的AWT/SWUNG程序基本一样,主要有以下几点:
a.MANIFEST.MF(舱单):打包清单文件。它是打包的关键文件,在运行Java应用程序时,需要根据此文件的信息来查找入口类和支持库。
b.支持库:如果Java应用程序用到了一些Eclipse包,那么就必须将这些包也复制到程序运行目录,否则程序无法运行,如SWT组件支持库swt.jar,JFace组件支持库jface.jar等,这些JAR包都要在MANIFEST.MF文件中设置好。
c.本地化文件:如果用到SWT组件,还需要将SWT的本地化文件swt-win32-3235.dll(3235是版本号)复制到程序运行目录,否则程序无法运行。
打包的具体的操作步骤
1.创建清单文件
Eclipse提供了用于打包项目的“导出”向导,但运行向导之前需要创建一个清单。在项目根目录下(也可以是其他目录)新建清单文件manifes.txt(可任意名)。Eclipse向导在打包时,会自动地将manifes.txt的内容复制到JAR包的META-INF目录的MANIFEST.MF文件中。manifes.txt内容如下:
  1. Manifest-Version: 1.0
  2. Class-Path: ./lib/org.eclipse.swt.win32.win32.x86.jar
  3. Main-Class: cn.com.chengang.swt.SashForm1
  4. (空行)
复制代码
Mainfest-Version:指定清单文件的版本号。
Class-Path:指定支持库的路径。“.”指程序运行目录,即导出的JAR包所在的目录。每个支持库之间用空格隔开。
Main-Class:指定程序运行的入口类(全类名,不加扩展名class)。
注意:设置限不区分大小写,如Clsaa-Path可以写成class-path等;Class-Path可能要设置很多支持库,最好写在一行并以空格隔开,也可以分行写,但行首必须带一空格:
  1. Class-Path: ./lib/org.eclipse.swt.win32.w(行首不能有空格)
  2. in32.x86.jar(行首必须带一个空格)
复制代码
常见错误:Invaild or corrupt jarfile ***.jar错误,3个设置项的冒号后面需要至少一个空格;Could not find the main class. Program will exit.Main-Class中SashForm1后面不能有空格;Failed to load Main-Class manifest attribute from ***.jar,必须最后多出一个空格。







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2