Java程序打成Jar包全过程

发表于:2010-7-01 10:43

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

#
java

  Java程序完成以后,对于Windows操作系统,习惯总是想双击某个exe文件就可以直接运行程序,现我将一步一步的实现该过程。最终结果是:不用安装JRE环境,不用安装数据库,直接双击一个exe文件,就可以运行程序。

  下面我将以我最近写的一个程序作例子,进行该打包过程。

  该程序是使用了:Hibernate,Spring,Derby的Java GUI.(JDK需要1.6版本,因该版本才有Derby),我使用的是Eclipse进行开发。

  第一步:完成Java GUI程序

  在Eclipse下,程序能够正常运行。

  第二步:准备清单文件(MANIFEST.MF)

  方法1:直接拷贝其它能运行的JAR文件中的MANIFEST.MF进行修改

  方法2:利用IDE工具,如Eclipse在生成JAR文件时自动生成

  MANIFEST.MF内容如下:

  Manifest-Version: 1.0
  Main-Class: manager.ui.MainFrame
  Class-Path: ./lib/spring.jar ./lib/hibernate.jar ./lib/derby.jar
  SplashScreen-Imager: manager/resources/images/splash.jpg

  说明:

  Manifest-Version - 指定清单文件的版本号
  Main-Class -指定程序运行的入口类。注意:类名后不要加class扩展名
  Class-Path -指定支持库的路径。“.”指程序运行目录,即导出的JAR包所在目录。程序运行时依据Class-Path项的设置路径来查找支持库。每一个支持库之间用空格隔开。在这里使用了hibernate,spring,derby。

  注意:

  1. 如果Java应用程序用到了一些Eclipse包,那么就必须将这些包也复制到程序运行目录,设置到Class-Path,否则程序将无法运行。引用了一些外部组件也需要如此设置,如hibernate,spring,derby。
  2. 除了入口类的包名和类名之外,其他设置项都不分大小写,比如:Class-Path写成class-path或CLASS-PATH也可以,swt.jar写成SWT.JAR也行。
  3. 类名后不要加class扩展名
  4. 每一行的':'后都有一个空格,如Class-Path:<空格>./lib/spring.jar
  5. Class-Path中引入的JAR文件每行不得超过19个,否则会报错。但在让人意外的是每行只有前9个有效,故将所有同类型的JAR文件做成一个JAR文件。如我这里的spring.jar,hibernate.jar,derby.jar都是同类JAR文件的组合。

  第三步:修改spring配置文件

  在spring的 'sessionFactory' bean的配置中则要这样写(与程序中ClassPathXmlApplicationContext对应)

  <property name="mappingLocations">
  <list>
  <value>manager/entity/MyFile.hbm.xml</value>
  <value>manager/entity/FileType.hbm.xml</value>
  ...
  </list>
  </property>

41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号