`
mircle
  • 浏览: 22833 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java 应用程序的打包发行

阅读更多
转:

Java应用程序项目的打包与发行

这里主要是讲解一下怎样将 Java程序打包成独立运行的exe程序包,以下这种方法应该是最佳的解决方案了。NetDuke的EXE程序包了是使用这种方案制作的。在操作步骤上还是比较简单的,而且通用性强。

1.程序打包
        首先将程序打成Jar包,打包命令:jar cf 包文件名.jar *.class。接下来编译包中的清单文件MANIFEST.MF 。
        Manifest-Version - 指定清单文件的版本号
        Main-Class - 指定程序运行的入口类。注意:类名后不要加class扩展名

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

     (1)将原JDK中的“jre”目录复制到“D:\项目文件夹\java1.4.2”目录下(java1.4.2也可换成其他名称)。
     (2)将JDK和JRE从本机卸载掉,这样表示本机没有安装JAVA运行环境。
     (3)修改批处理文件run.bat中的命令为“start java1.4.2\jre\bin\javaw -jar NetDuke.jar”,仅仅是在javaw前加上了一个相对应路径。
      双击run.bat即可在不安装JRE环境的电脑运行此Java应用程序。


3.更进一步的完善
        1、抛弃批处理文件(*.bat)

      用批处理文件运行程序似乎不够专业,虽然它足以完成运行任务。但习惯就象一种毒药一旦染上就很难摆脱它的影响,Windows统治下的人们早已经习惯运行扩展名是EXE的程序,用*.bat他们就会感觉别扭。
      我们可以用一个叫JavaLauncher的免费小程序来代替批处理文件去运行Java程序。JavaLauncher的下载网址是:http://www.rolemaker.dk/nonRoleMaker/javalauncher/marner_java_launcher.htm

         下载下来的文件是一个名JavaLauncher.zip的压缩包,解压后的目录结构如下:
         1.source目录包含了JavaLauncher的源程序,是用C语言写的
      2.changes.txt是新版的修改说明
      3. launch.exe是主程序
      4. launcher.cfg是配置文件
      5.readme.txt是一些说明和示例
      我们只需要launch.exe、launcher.cfg两个文件,将这两个文件复制到打包文件所在的目录。launcher.cfg是一个仅三行内容的文本文件,将它修改如下:
         .
         .\java1.4.2\jre\bin\javaw.exe
         -jar NetDuke.jar

         第一行设置指向JAR包NetDuke.jar的目录,由于launch.exe和NetDuke.jar同在一个目录,所以用“.”即当前目录。
      第二行设置指向jre\bin\javaw.exe的路径。要先将jre目录复制到了java1.4.2子目录中
配置好launcher.cfg后,双击launch.exe即可运行java应用程序。

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


4.美化图标
         launch.exe文件的图标太单调了,让我们给它换个好看点的。换程序的图标需要用到一个免费的软件:Resource Hacker,它有中文版,下载网址是:
      http://www.users.on.net/johnson/resourcehacker/
         用Resource Hacker来替换launch.exe的图标的步骤如下:
      (1)运行Resource Hacker。
      (2)单击主菜单“文件→打开”,将launch.exe载入到程序中。
      (3)选择左边的“图标→1→1030”,然后右键单击“1030”项,选择“替换资源…”。然后在弹出窗口中单击“打开新图标文件”,选择一个满意的图标,然后单击“替换”按钮。
       附注:图标文件可以是exe、dll、res、ico,该软件可以从exe、dll、res抽取出图标,本例选择的是Java的吉祥物Duke.ico。
      (4)选择“文件→另存为”,取名NetDuke.exe。
       附注:按理说选择“保存”也是可以的,这时Resource Hacker会将老的launch.exe备份成launch_original.exe。但也许是刷新上有问题,用“保存”方式有时launch.exe无法显示出新图标,但有时又可以。
      (5)最后的目录如下所示,可见NetDuke.exe(也就是launch.exe改了个名称)的图标换成了Java的图标。双击NetDuke.exe即可运行Java应用程序。
       1.java1.4.2(文件夹)
           2.launcher.cfg
           3.NetDuke.exe
           4.NetDuke.jar


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

      另外大家要注意的几点:
      (1)Java应用程序中用到的资源,它都必须要求写绝对路径,否则在其它机子上就会出现找不到资源。所以一般我们在写程序时就要注意一定要用绝对路径,例如:Toolkit.getDefaultToolkit().getImage(getClass().getResource("文件名")));像这种写法就一定没问题。当然如果要将资源传递给构造器的话就没办法了,例如:NetDuke frame = new NetDuke("资源");这是我们就须要将资源拷贝到项目文件夹下一起打包。
      (2)一般我们的Jre都有60多M,这样和程序一起打包就显得很臃肿。所以要将Jre适当地减肥,具体的作法这样不再累赘,大家在一台还没装JRE的机上测试,将JRE中的一个个文件删除后程序是否可正常运行。还有一个就是rt.jar这个Java类库也要大量的砍伐。

       通过以上的操作即可得到使大家满意的一个exe程序包,而不用借助其它软件。希望对大家有帮助。


[本日志由 starsinsky
  • javalauncher.zip (2.7 MB)
  • 描述: 把java的class文件打包发行为window下的 exe文件
  • 下载次数: 1920
分享到:
评论

相关推荐

    Java应用程序项目的打包与发行工具

    在Java开发过程中,将应用程序打包和发行是项目完成后的关键步骤。这确保了代码能够以易于分发和安装的形式提供给用户。本文将详细介绍Java应用程序的打包与发行过程,以及可能涉及的相关工具。 首先,我们要了解...

    Eclipse项目的打包发行方法

    在Eclipse环境中完成一个Java应用程序后,对其进行打包发行是非常重要的一步。打包的过程不仅包括将项目中的所有类文件和其他资源压缩成一个易于分发的形式,还需要确保这些打包后的文件能够被正确地执行。 ##### ...

    SWT应用程序项目的打包与发行.doc

    在SWT应用程序项目的打包与发行过程中,有几点关键的知识点需要注意。 首先,打包清单文件MANIFEST.MF是整个打包过程的核心。这个文件定义了程序的入口点(Main-Class),也就是程序启动时要调用的主类,以及程序...

    java项目打包发行.pdf

    在运行Java应用程序时,系统会依据这个文件中的信息找到启动类和库。 - **支持包**:如果项目中使用了Eclipse的特定包,如SWT或JFace,那么这些包也需要包含在运行目录下,否则程序将无法运行。例如,SWT需要swt.jar...

    JAVA打包成应用软件的方法

    Java应用程序在完成开发后,可以通过打包成为一个JAR包,使其能够在不依赖Eclipse等集成开发环境的情况下运行。打包的关键在于创建并配置`MANIFEST.MF`文件,指定执行入口类和支持库的路径。此外,如果项目中使用了...

    eclipse-项目打包与发行

    本文主要介绍了两种不同类型的项目的打包方法:Java应用程序项目和Eclipse插件项目。 首先,我们关注Java应用程序项目的打包。这个过程的核心是创建一个可执行的JAR文件,它能够独立于Eclipse环境运行。关键在于...

    exe4j.zip(用于java项目打包成exe程序)

    exe4j是一款强大的工具,专为Java开发者设计,用于将Java应用程序打包成Windows平台下的可执行文件(.exe)。这个工具使得Java应用能够无需JVM(Java Virtual Machine)即可在Windows系统上运行,大大提高了用户的...

    exe4j打包工具.rar

    总的来说,exe4j作为一个强大的打包工具,对于Java开发者来说,它提供了便捷的方式将Java应用程序打包成易于分发和执行的形式,同时降低了对用户系统的依赖性。通过深入理解和使用exe4j,开发者可以提高其Java应用的...

    基于Java的源码-多环境应用程序框架 WebOnSwing.zip

    【标题】"基于Java的源码-多环境应用程序框架 WebOnSwing.zip" 提供的是一种用Java语言实现的多环境应用框架,该框架专为构建可在不同环境下运行的桌面应用程序设计。WebOnSwing这个名字暗示了它可能将Web技术与传统...

    13.系统打包发行.pptx

    - 应用程序打包:将整个Java应用程序及其依赖项打包成一个JAR文件。 - 库文件:将常用的Java类库打包成JAR文件供其他项目使用。 ### 知识点三:JAR文件的创建与使用 - **创建方法**: - **手动创建**:可以通过...

    Linux应用程序开发.pdf

    开发者需要利用包管理工具(如dpkg、rpm、APT等)来打包和分发应用程序,以简化部署过程。 9. 跨平台开发:为了使应用能够在不同的操作系统上运行,开发者需要使用跨平台工具和技术,如Qt可以在Linux、Windows、Mac...

    JAVA 开发环境 Java SE Development Kit (JDK) 16.0.1 x64.zip

    Java 运行时环境(JRE)允许您执行 Java 应用程序,组件和小程序,而 Java 开发套件(JDK)提供了一套全面的工具,供程序员构建,运行,调试甚至记录 Java 代码。 您还可以访问 JRE 的 Java 虚拟机(JVM)组件以及...

    Architecting-Modern-Java-EE-Applications:Packt发行的《现代Java EE应用程序的体系结构》

    架构现代Java EE应用程序 这是发行的用于构建的代码库。 它包含从头到尾完成本书所必需的所有支持项目文件。 关于这本书 Java EE 8带来了许多功能,主要针对诸如微服务,现代化的安全性API和云部署等较新的体系结构...

    行业分类-设备装置-部署、合并发行独立应用程序的方法、计算机可读媒体和系统.zip

    综上所述,"行业分类-设备装置-部署、合并发行独立应用程序的方法、计算机可读媒体和系统"这一主题涵盖了软件生命周期中的多个关键方面,包括软件的打包、分发、兼容性、安全性和持续管理。理解和掌握这些知识点对于...

    java虚拟机wince版

    这意味着它兼容这个特定的CE版本,并且能够在该系统的设备上执行Java应用程序。Windows CE 6.0是微软发布的嵌入式操作系统的版本,支持多线程、网络连接和硬件加速等功能,这些对于运行Java应用来说都是关键因素。 ...

    JAVA项目发布成安装文件(齐全)

    这个“JAVA项目发布成安装文件(齐全)”的压缩包提供了完整的解决方案,包括将Java应用程序转换为Windows平台下的可执行exe文件,以及打包成安装包的能力。下面将详细阐述相关知识点: 1. **Java应用程序转EXE**: ...

    java 开机自启动 完整工程

    - JSW是一个用于将Java应用程序包装为操作系统服务的工具,它提供了跨平台的服务管理功能。 2. **使用System V或Upstart服务**(针对Linux): - 在Linux环境下,可以创建System V init脚本或者使用Upstart配置来...

    Linux应用程序开发指南:使用Gtk_&Gnome库上

    10. **打包与发布**:如何将你的应用程序打包成可安装的DEB或RPM软件包,以便在不同Linux系统中分发。 通过这个指南,开发者将能够从零开始创建一个完整的Linux桌面应用程序,利用Gtk_&Gnome库的强大功能,为用户...

    web程序打包成移动端可装的apk

    标题中的“web程序打包成移动端可装的apk”是指将基于Web技术开发的应用程序转换成可以在Android设备上安装和运行的APK文件。这个过程通常用于将Web应用转化为原生移动应用,使得用户无需通过浏览器就能访问和使用...

Global site tag (gtag.js) - Google Analytics