`
lanting506
  • 浏览: 5594 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

引用别人的!!!

阅读更多
java打包生成jar和exe全过程
文章分类:Java编程
      Java程序完成以后,对于Windows操作系统,习惯总是想双击某个exe文件就可以直接运行程序,现我将一步一步的实现该过程.最终结果是:不用安装JRE环境,不用安装数据库,直接双击一个exe文件,就可以运行程序.

  下面介绍过程:

  第一步:完成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>

  第四步:使用Eclipse生成JAR文件

  1.右键单击项目名,在弹出菜单中选择“Export”。在弹出的如下图所示的对话框中,选择“JAR文件”,单击“Next”

  2.将右边不需要的文件都取消勾选。在“选择导出目标(Select the export destination)”项文本框中设置JAR包的输出路径和包名(可以任意取名)为“D:\manager\manager.jar”。接受其他的默认设置不变,单击“Next”。

  附注:左边虽然选择了src目录,但源文件并不会导出到包中,除非勾选了“导出Java源代码文件和资源(Export java source files and resources)”项。

  3.接受默认设置不变,单击“Next”

  4.这一步较关键。如下图所示,选择“从工作空间中使用现有清单”项,将创建的清单文件输入,也可以通过旁边的“浏览”按钮来选择清单文件。输入清单文件后,单击“Finish”,Eclipse开始将项目打包。

  附:这里也可以选择Generate the manifest file.但生成的清单文件MAINFEST.MF需要修改.

  注意:清单文件MAINFEST.MF一定要按第二步那样设置.

  生成的JAR文件目录如下:

  第五步:生成运行manager.jar的批处理文件manager.bat(该步可以不要)

  在manager目录下创建一个批处理程序manager.bat(名字任取,扩展名必须是bat),其内容仅一句语句,如下:

  javaw -jar manager.jar

  说明:

  1.javaw对应c:\jdk\jre\bin\javaw.exe文件,如果windows提示命令未发现,则需要将c:\jdk\jre\bin路径加入到windows环境变量path中。

  2.在运行程序的时候有一个讨厌的黑色命令行窗口,要去掉它,可以将run.bat内容更改如下:“start javaw -jar manager.jar”,start是指调用了windows的“运行”命令。

  3.在后边加一个pause就可以让你看到具体哪里出错了,如:

  start javaw -jar manager.jar

  pause

  双击manager.bat,就可以运行该JAR文件了.

第六步:让电脑不必安装JRE环境,也能运行.

  通常运行Java程序有个前提条件:用户电脑必须先安装JRE环境。虽然安装JRE环境非常简单,但毕竟多了一步,算是有一点点的瑕疵。这里给出一个不必让用户安装JRE环境的方法,其实现步骤如下:

  (1)将原JDK中的“jre”目录复制到“D:\manager\java”目录下(java也可换成其他名称)。

  (2)将JDK和JRE从本机卸载掉,这样表示本机没有安装JAVA运行环境。

  (3)修改批处理文件manager.bat中的命令为“start java\jre\bin\javaw -jar manager.jar”,仅仅是在javaw前加上了一个相对应路径。

  双击manager.bat即可在不安装JRE环境的电脑运行此Java应用程序。

  第七步:抛弃批处理文件(*.bat),生成exe文件

  用批处理文件运行程序似乎不够专业,虽然它足以完成运行任务。但习惯就象一种毒药一旦染上就很难摆脱它的影响,Windows统治下的人们早已经习惯运行扩展名是EXE的程序,用*.bat他们就会感觉别扭。

  我们可以用一个叫JavaLauncher的免费小程序来代替批处理文件去运行Java程序。JavaLauncher的下载网址是:

  http://www.rolemaker.dk/nonRoleMaker/javalauncher/marner_java_launcher.htm

  下载下来的文件是一个名JavaLauncher.zip的压缩包,解压后的目录结构如下所示:

  JavaLauncher.zip目录结构

  source        目录包含了JavaLauncher的源程序,是用C语言写的

  changes.txt   是新版的修改说明

  launch.exe    是主程序

  launcher.cfg  是配置文件

  readme.txt    是一些说明和示例

  我们只需要launch.exe、launcher.cfg两个文件,将这两个文件复制到打包文件所在的目录。launcher.cfg是一个仅三行内容的文本文件,将它修改如下:

  .\java\jre\bin\javaw.exe

  -jar manager.jar

  第一行设置指向JAR包managger.jar的目录,由于launch.exe和myswt.jar同在一个目录,所以用“.”即当前目录。

  第二行设置指向jre\bin\javaw.exe的路径。在上面已将jre目录复制到了java子目录中

  配置好launcher.cfg后,双击launch.exe即可运行java应用程序。

  如果仔佃研究eclipse的启动方式,发现eclipse和JavaLauncher的原理一样:eclipse.exe相当于 launch.exe,startup.jar相当于manager.jar。只不过eclipse.exe不象launch.exe要具有通用性,所以它没有*.cfg这样的配置文件,而是将启动信息固化在eclipse.exe中。

  第八步:美化图标

  launch.exe文件的图标太单调了,让我们给它换个好看点的。换程序的图标需要用到一个免费的软件:Resource Hacker.

  第九步:最后的打包

  发送给用户之前,通常要用WinZip或WinRAR将所有的文件全部打成一个压缩包,然后用户得到这个压缩包后,将其解压缩后即可运行程序,Eclipse软件就是这种方式。

  另一种方式是用InstallShield、InstallAnyWhere这样的安装程序制作软件来创建一个单一的setup.exe文件,它具有向导式的安装界面,而且还可以往windows的程序栏插入菜单项,关于这些安装程序制作软件的具体使用请参阅相关书籍。
分享到:
评论

相关推荐

    标点符号的运用独立引用与非独立引用的区别.pdf

    在书面交流中,标点符号的正确运用是一门艺术,它能够提升文本的表达力与逻辑性。...随着语言实践能力的不断提升,我们也能够更加自信地进行书面表达,以更加精确和流畅的方式与他人进行有效沟通。

    标点符号的运用独立引用与非独立引用的区别.doc

    在中文写作中,标点符号的使用是非常重要的,特别是在引用他人的话语或文字时。今天,我们将讨论独立引用和非独立引用的区别。 在独立引用中,如果引号前是冒号,引号里又是一句完整的话,就算独立引用,点号放在...

    直接、间接引用[1] (2).ppt

    直接引用是指不改变原文内容和形式的引用方式,它要求引用者完整、准确地复制原话,并使用引号来表明是别人的原话。这种引用方式的优点在于能保持作者的原意和语气,让读者或听者直接接触原文的精神实质。例如,当...

    注释、引用与标注.doc

    它们不仅为作者提供了补充正文内容、表达感激之情和准确引用他人成果的途径,也是保障读者理解学术论点和论据来源的必要工具。通过熟练掌握注释、引用与标注的规范使用,作者能够向学术界展示自己的严谨态度,并为...

    Allegro引用设计模块

    ### Allegro 引用设计模块知识点详解 #### 一、概述 Allegro是一款由Cadence公司开发的EDA工具,广泛应用于电子设计自动化领域。它不仅支持原理图设计,还能进行PCB布局布线等复杂任务。Allegro的设计复用功能是其...

    直接引用 间接引用Microsoft PowerPoint 演示文稿PPT学习教案.pptx

    在制作Microsoft PowerPoint演示文稿时,信息的准确传递和知识的恰当引用是构建演示内容的专业性和说服力的关键。直接引用与间接引用作为引用信息的两种主要方式,在实际应用中扮演着重要角色,不仅涉及知识共享,更...

    解决pyecharts运行后产生的html文件用浏览器打开空白 下载引用资源到本地

    2. 因为默认优先从远程引用资源,这就导致有的时候无法加载js文件,图表显示不出来 解决办法:下载所需js文件到本地,修改资源引用地址。 看网站的介绍,pyecharts 提供了更改全局 HOST 的快捷方式 from pyecharts....

    word毕业论文中的引用怎么插入?.docx

    - **合法性**:遵守版权法规,合理使用他人的研究成果。 #### 四、结语 正确地插入引用不仅可以避免抄袭的风险,还能增强论文的可信度和专业性。通过以上步骤,您可以轻松地在Word文档中插入引用,从而顺利完成...

    Pycharm 实现下一个文件引用另外一个文件的方法

    问了别人,改一个地方的设置就好了。 如上图所示,右键选中当前project–&gt;Mark Directory as –&gt; Sources Root. 以上这篇Pycharm 实现下一个文件引用另外一个文件的方法就是小编分享给大家的全部内容了,希望能给...

    C语言复习题大全!绝对经典!!!!

    5. **指针**:深入学习指针的概念,掌握指针的声明、赋值、解引用,以及指针与数组、函数的结合使用。 6. **结构体与联合**:理解结构体和联合体的数据结构,学会创建和操作自定义数据类型。 7. **内存管理**:...

    标点符号的运用----独立引用与非独立引用的区别.doc

    尤其是在我们引用他人的话语时,标点符号的使用更显得尤为重要。正确区分独立引用与非独立引用,并掌握它们之间的区别,对于确保文本清晰、准确表达具有关键性作用。本文将围绕独立引用与非独立引用的区别展开讨论,...

    Android Studio如何引用第三方库

    Android Studio 引用第三方库...在开发中,我们需要遵守相关的法律法规和道德规范,尊重他人的知识产权。 Android Studio 提供了多种方式来引用第三方库,我们可以根据实际情况选择合适的方法,以提高开发效率和质量。

    参考文献引用技巧.docx

    在学术写作中,正确引用参考文献是至关重要的,它不仅体现了对他人研究成果的尊重,也是保证学术诚信的基础。本文将详细介绍几种常见的参考文献引用技巧,包括利用文献管理软件、在线直接引用以及处理不同平台引用...

    C编程规 写程序得同学必看!!!

    2. **头文件布局**:头文件通常包括版本历史、常量定义、全局宏定义、数据类型定义、全局变量定义、外部引用定义以及全局函数原型定义等内容。 3. **源文件布局**:源文件即实现文件,其布局通常按照功能模块进行...

    润乾报表组件(带Windows Server license!!!)

    在压缩包中,`runqianReport4Applet.jar`文件是润乾报表的客户端运行库,它包含了报表展示所需的所有组件,可以被Web应用引用以显示报表。而`runqianWindowServer.lic`则是Windows Server的许可证文件,确保了在...

    APA文献引用格式讲解.pdf

    它提供了一种标准化的方式来记录和引用别人的研究成果,确保了学术诚信和便于读者查找原始资料。 APA引用的核心原则是简洁、一致和准确。在文本中引用时,通常需要给出作者的姓氏和出版年份。例如,(Smith, 2020)。...

    url重写,想学习的看下!

    甭看别人的案例,要么代码恶心的要死,要么就是你看了也不明白,想学会很简单下载下来看看配置文件!引用俩类文件!虚拟路径改为/!超级简单!要是看了还不会你肖死我! 备注:正则表达式要多看看此处没功略

    引用参考文献的惯例与经验.pdf

    在学术研究领域,准确无误地引用参考文献是构建学术诚信大厦的基石。随着互联网的兴起,知识的传播速度得到了前所未有的提升,然而,信息的泛滥同时也带来了引用不端的问题。因此,掌握引用参考文献的惯例与经验,已...

    参考文献引用技巧.pdf

    在学术写作中,正确引用参考文献是至关重要的,它不仅体现了对他人研究成果的尊重,也是保证学术诚信的基础。本文将详细介绍几种常见的参考文献引用技巧,包括利用文献管理软件和在线平台进行引用的方法。 首先,...

    医院药房管理系统流程图设计(已删去第一章引用他人的内容,大学开放性作业小组报告).doc

    医院药房管理系统流程图设计(已删去第一章引用他人的内容,大学开放性作业小组报告)

Global site tag (gtag.js) - Google Analytics