最近,在搞java 界面的问题,
看着java程序的显示图标实在有点说不过去,便换了一个自己定义的图标。
又引用了数据库驱动和字符串加密解密包。
打包程序发布的时候,忙着手工编写 MANIFEST.MF 文件,生成了运行jar包,同时还附带了
一个数据库驱动包和图片包,虽然可以运行,但是,看着总是不太舒服。
唉,一个小的应用程序每天还得带着两个尾巴到处跑……
上网一搜,发现了一个很好的eclipse插件Fat Jar ,在不需要你配置其他文件的情况下,
他可以将所有资源打包进一个可执行jar文件里面。一阵忙碌之后,新的jar包文件产生了,
迫不及待的点击运行,出乎意外,双击该JAR文件后,在屏幕上一闪之后就消失了。明明在
eclipse里面运行一点问题都没得,没办法,又重新审视下自己的代码:
Image im = Toolkit.getDefaultToolkit().getImage("resource/icon.gif");
setIconImage(im);
同时,上网搜搜,发现其原因是程序中载入图片或文本文件时,使用了以当前工作路径为基准的方式来指定文件和路径。
这与用户运行Jar包时的当前工作路径并不一致。
改写代码如下:
URL imgURL = this.getClass().getResource("/resource/icon.gif");
Image im = Toolkit.getDefaultToolkit().createImage(imgURL);
setIconImage(im);
区别非常细微,仅仅是在“resource”的前面加了一个反斜杠"/",这个反斜杠就表示根目录,没有反斜杠就表示相对路径。
同时将SWT+JFace实现的代码改为:
URL imgURL = this.getClass().getResource("/resource/icon.gif");
Image image = new Image(d, imgURL.getPath());
s.setImage(image);
Eclipse运行正常,打包后,仍然无法运行(原因有待研究),
通过查询API发现Image 还有另外一种形式的构造函数,试着改动代码为:
InputStream imageInputStream = super.getClass().getResourceAsStream("/resource/icon.gif");
Image image = new Image(d, imageInputStream);
this.s.setImage(image);
果然,打包后顺利运行!!
至此,所有的资源文件和引用的jar被整合到一起!
分享到:
相关推荐
总之,Java应用程序打包是一个涵盖编译、资源整合、元数据管理、构建自动化等多个环节的过程。了解并掌握这些知识点,有助于我们更高效地管理和发布Java项目。在实际工作中,结合源码管理工具和自动化构建工具,可以...
本文将详细介绍Java应用程序的打包与发行过程,以及可能涉及的相关工具。 首先,我们要了解Java应用程序的两种主要类型:JAR(Java Archive)文件和WAR(Web Application Archive)文件。JAR文件用于封装类库和资源...
1. **JAR文件**:这是你的Java应用程序的核心,包含所有类和资源。确保选择正确且完整的JAR文件。 2. **主类名**:这是启动应用程序的入口点,通常在MANIFEST.MF文件中定义。如果你的应用没有显式设置,可能需要...
### 打包Java应用程序 #### 一、引言 在软件开发过程中,将Java应用程序打包成可执行文件或压缩包是十分重要的一步。这不仅能够方便地进行分发与部署,还能提高应用的安全性和易用性。对于Java开发者而言,掌握...
### Java应用程序打包成EXE文件的方法详解 #### 一、引言 在开发Java应用程序时,经常需要将程序打包成可执行文件以便于部署和分发。对于Windows平台上的用户而言,EXE文件是最常见的可执行文件格式。本文将详细...
这种方式使得Java应用程序能以更直观的方式在Windows环境下运行,同时解决了依赖JRE的问题。需要注意的是,捆绑JRE会增加生成的exe文件大小,因此在发布时需要权衡用户体验和文件大小。此外,如果目标机器已安装了...
Java应用程序打包工具--fat jar,是一种将所有依赖的库文件(jar)合并到一个可执行的jar文件中的技术。这通常是为了方便分发和运行Java应用程序,因为用户不再需要设置复杂的类路径。fat jar,也被称为"uber jar"或...
在Java中,我们可以使用JAR(Java Archive)文件格式将所有类文件、资源文件和元数据打包在一起。JAR文件可被Java虚拟机直接执行。如果系统依赖外部库,还可以使用工具如Apache Maven或Gradle来管理依赖并创建可执行...
Java 桌面程序开发完成后,为了让用户能够方便地运行,通常需要将其打包成一...总之,FATJAR插件是Java开发者将桌面程序打包成独立可执行文件的一种实用工具,它简化了打包过程,使得Java应用程序的分发变得更加便捷。
在这篇文章中,我们将详细介绍如何使用 exe4j 将 Java 桌面程序打包成可执行的桌面应用程序。下面是详细的打包步骤: 第一步:将 Java 项目打包成可执行 jar 文件 首先,我们需要使用 Eclipse 将 Java 项目打包成...
- SWT(Standard Widget Toolkit)是一种用于构建Java桌面应用程序的UI工具包。 - 如果使用SWT,则还需要复制相关的本地库文件(例如`swt-win32-*.dll`)到JAR文件所在的目录下,以确保在不同平台上都能正确运行。 ...
在Java开发过程中,为了方便地部署和执行Java应用程序,经常需要将编写的Java源代码或类文件打包成可执行的格式。尤其是在Windows环境下,为了让非技术人员也能轻松运行Java程序,通常会采用`.exe`或`.jar`格式进行...
Java 程序打包是指将 Java 程序编译后的.class 文件和其他资源文件打包成一个 jar 文件,以便于分发和部署。下面是 Java 程序打包的详细步骤和知识点总结: 一、创建 manifest 文件 在 Java 程序打包之前,需要...
1. **Java应用程序与JAR文件**:Java应用程序通常被打包成JAR(Java Archive)文件,这是一种归档格式,包含了类文件、资源文件以及元数据。JAR文件可以被Java虚拟机(JVM)直接运行,通过命令行使用`java -jar ...
"asd1.jar"可能是一个Java应用程序本身,包含了所有必要的类文件和其他资源。"哥们.gif"和"哥们1.gif"可能是程序的图标或者相关的图片资源,而"自己.jpg"可能是作者或程序的说明图片。"jre1.6.0_04"是一个特定版本的...
Java应用程序打包工具是将Java应用程序转换为可在非Java环境下运行的可执行文件(通常为.exe格式)的关键技术。这使得不需安装Java环境的用户也能方便地运行Java程序。本指南将详细介绍两种常用的Java打包工具:exe4...
在Java开发过程中,将程序打包成可执行的jar或exe文件是常见的需求。这使得用户无需安装Java环境即可运行程序,提高了软件的便利性和普及性。以下是对标题、描述及标签涉及的知识点的详细说明: 1. **Java程序打包...
这里提到了一个名为"EXE4J"的工具,它是一款专门用于将Java应用程序转换为Windows可执行文件的软件。EXE4J允许开发者选择启动类、设置Java虚拟机参数,并且可以选择创建单一的exe文件,或者带有JRE的自包含安装包,...
- **多线程支持**: 支持多线程Java应用程序的打包。 - **兼容性**: 能够处理Java 1.3至最新的Java版本。 - **错误处理**: 提供了内置的错误处理机制,当JRE出现问题时,能够提供友好的提示。 **4. 注意事项** - ...