zoukankan      html  css  js  c++  java
  • 应用程序的打包和发行

    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内容如下:

    Manifest-Version: 1.0
    Class-Path: ./lib/org.eclipse.swt.win32.win32.x86.jar
    Main-Class: cn.com.chengang.swt.SashForm1
    (空行)

    Mainfest-Version:指定清单文件的版本号。
    Class-Path:指定支持库的路径。“.”指程序运行目录,即导出的JAR包所在的目录。每个支持库之间用空格隔开。
    Main-Class:指定程序运行的入口类(全类名,不加扩展名class)。
    注意:设置限不区分大小写,如Clsaa-Path可以写成class-path等;Class-Path可能要设置很多支持库,最好写在一行并以空格隔开,也可以分行写,但行首必须带一空格:

    Class-Path: ./lib/org.eclipse.swt.win32.w(行首不能有空格)
     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,必须最后多出一个空格。

    2.使用Eclipse “导出”向导来打包项目

    右击项目名。选择导出命令,在对话框中选择JAR文件选项;
    无标题

    将不需要导出的文件取消复选框,并选择输出路径和包名,注意:虽然现在了src目录,但Java源文件不会导出到包中,除非选中了“导出Java源代码文件和资源”;
    无标题

    指定清单->从工作空间中使用现有清单;(也可以生成清单文件)
    无标题

    3.复制Java应用程序的支持库及本地化文件

    把支持库复制到Class-Path指定的目录,并修改为指定的文件名称。在这里把支持库eclipse/plugins/org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar复制到打出JAR包目录/lib下,并重命名为org.eclipse.swt.win32.win32.x86.jar。
    用解压工具打开org.eclipse.swt.win32.win32.x86.jar,从中将swt-win32-3235.dll复制到JAR包目录(Windows平台的本地化文件)。

    4.编写运行jar包的run.bat

    在JAR包目录先新建run.bat批处理文件,内容为javaw -jar HelloWorld.jar即可
    在运行时会有一个讨厌的黑色命令窗口,要去掉它,可以修改为start javaw -jar HelloWorld.jar,start相当于Windows的“运行”命令;如果想把swt-win32-3235.dll放在独立的文件夹中,如**/native目录,则改为start javaw –Djava.library.path=./native/ –jar HelloWord.jar。

    其他得到JAR包的方式

    1.使用JDK自带的jar.exe命令

    jar cvfm HellloWorld.jar ***manifes.txt -C ***in .

    cvfm是jar命令4个参数的组合:c指创建新的JAR包,v指调试信息打印到屏幕,f指定jar文件名,m指使用自定义的清单文件;“-C 路径 .”:将某路径下的所有文件打包,bin目录下式编译后的class文件,所以源路径指定为它。

    2.使用Fat Jar插件打包项目
    安装插件Fat Jar,右击项目,选择 "BuildFatJar” 命令
    无标题

    Jar-Name项输入JAR包名,Mainfest不用填写,默认会自动创建一个清单文件,Main-Class填写入口类,其他设置不变。
    无标题

    项目所用到的支持库都会列出来,选择需要的即可,当然全选也可以,只是最后的JAR包会更大一些,因为Fat Jar会将所有支持库合并在一个JAR包中。
    单击完成,JAR包会输出到项目目录中,和以前一样,要运行此JAR包需要批处理文件以及本地化文件。唯一不同的是不在需要Eclipse支持库,因为所有库已经打包到JAR包中了。

    让用户不必另外安装JRE环境

    运行Java程序一般要求用户电脑先安装JRE环境。虽然安装JRE环境很简单,但是毕竟多了一步。不必安装JRE环境的实现步骤如下:
    1.将JDK下的jre目录复制到JAR目录java目录下(java可换为其他名称);
    2.修改批处理文件为 "start javajreinjavaw –jar HelloWorld.jar”,新命令给javaw指定了相对路径;
    3.双击bat文件即可在没有安装JRE环境的电脑中运行此Java应用程序。

    创建EXE执行程序及美化图标

    1.使用JavaLauncher创建exe
    JavaLauncher是一个开源的免费小程序,下载JavaLauncher,解压目录文件如下:
    source目录包含JavaLauncher的源程序,使用C语言写的;changes.txt是新版的修改说明;launch.exe是主程序;launcher.cfg是配置文件;readme.txt是一些说明和示例。
    只需要两个文件launch.exe和launcher.cfg,将它们复制到JAR包所在目录。launcher.cfg是一个仅3行的文件,修改如下:

    .
    javaw.exe 
    -jar HelloWorld.jar

    第一行是JAR包的目录,此时launch.exe和GAR在同一个目录下;第二行是javaw的路径。配置好后,双击launce.exe即可运行java应用程序。

    2.美化图标
    launch.exe的图标太单调了,可以使用免费软件Resource Hacker给它换一个。
    下载Resource Hacker,运行ResHacker.exe,选择主菜单“文件-打开”,将launch.exe文件载入。展开“ 图标-1-1030 ”结点,选择“替换资源…”
    无标题

    “打开新图标文件”,然后单击替换即可。注意:图标文件可以是exe、dll、res、ico,该软件会从这些文件中抽取出图标。最后“文件-保存为”新文件取名为newtest.exe。

  • 相关阅读:
    Filtering Approaches for Real-Time Anti-Aliasing(2011 SIGGRAPH)
    Rendering in UE4(Gnomon School UE4 大师课笔记)
    [转]Normal Map中的值, Tangent Space, 求算 Tangent 与 Binormal 与 TBN Matrix
    【第四章】语法分析
    【第三章】词法分析
    "随笔"列表
    查看Linux下库文件(a, so)中函数、变量
    [转]在Ubuntu 18.04系统上安装Systemback的方法
    [转]grep
    解决 Android 输出Logcat时报错[ read: unexpected EOF! ]
  • 原文地址:https://www.cnblogs.com/houkai/p/3375871.html
Copyright © 2011-2022 走看看