转载自: http://blog.chinaunix.net/u/28326/showart_444618.html
当项目完成后接下来的就是打包发行了,这里说的非Applet,Web
application等,而是指纯粹的控制台程序或有图形界面的java程序。通常程序的打包发行指把程序打包成.exe执行文件或脚本文件来方便用户
的执行使用。在工作中完成一个车辆定位后台通信服务程序,主要通过UDP协议与终端设备进行数据的传输,在开发完后进入程序的打包发布阶段,通过查找资
料,在网络上搜索到一篇文章--java应用程序项目的打包与发行,此文叙述清楚,按其操作成功,现根据此文对脚本运行java程序的打包发布步骤进行简
单的总结,详细内容见本人博客中的《java应用程序项目的打包与发行》一文。
主要有以下三个要点
l
MANIFEST.MF
-
打包清单。它是打包的关键性文件,主要是设置执行入口类和支持库的路径,在运行
Java
应用程序时是要根据此文件中给出的信息来查找入口类和支持库。
l
支持包
-如果
Java
应用程序用到了一些
类库
包,那么就必须将这些包也复制到程序运行目录,否则程序将无法运行。如
swt
组件支持包
swt.jar
,
jface
组件支持包
jface.jar
。这些包都要在
MANIFEST.MF
文件中设置好。
l
资源文件 - 例如程序中用到
本地化文件,资源文件等,需要把这些资源文件
复制到程序运行目录,否则程序将无法运行。
打包的具体操作步骤 :
以下步骤的说明都是以开发工具 eclipse,工程agps为例,如果手动或使用其他工具来打包程序,可能步骤方式不同,但原理同。
1
、编辑清单
MANIFEST.MF
(
1
)
Eclipse
提供了用于打包项目的“导出”向导,但本例运行此向导之前先需要创建一个
MANIFEST.MF
清单文件,其内容如下:
Manifest-Version: 1.0
Main-Class: com.mdragonway.agps.VGListener
Class-Path: ./lib/log4j.jar ./lib/msbase.jar ./lib/mssqlserver.jar
./lib/msutil.jar ./lib/weblogic.jar ./lib/xbean.jar
说明:
l
Manifest-Version
-
指定清单文件的版本号
l
Main-Class
-
指定程序运行的入口类。本例设为运行
4.5.2
节开发的向导式对话框。注 意:类名后不要加
class
扩展名
l
Class-Path
-
指定支持库的路径。“
.
”指程序运行目录,即导出的
JAR
包所在目录。程序运行时依据
Class-Path
项的设置路径来查找支持库。每一个支持库之间用空格隔开。在这里
jface.jar
需要用到
runtime.jar
包,所以
runtime.jar
包也要加入到
Class-Path
中。
l
除了入口类的包名和类名之外,其他设置项都不分大小写,比如:
Class-Path
写成
class-path
或
CLASS-PATH
也可以,
swt.jar
写成
SWT.JAR
也行。
(2)将清单文件保存下来,建议放在工程项目的根目录下。它的文件名可以任意取,本例取名为manifes.txt,利用一
些工具如Eclipse向导在打包时会自动的将manifes.txt的内容复制到JAR包的META-INF目录下的MANIFEST.MF文件中。
2.把源码文件打成jar包
根据manifes.txt文件对源码进行打包,在eclipse中打包过程中选择“
从工作空间中使用现有清单”
选项选择上述编辑好的清单文件,完成打包后的agps.jar文件放到agps目录下,agps.jar的内部目录一般会有程序源码的包路径和META-
INF目录,META-INF中仅一个文件:MANIFEST.MF,它和以前创建的清单文件manifest.txt的内容是一样的,如下:
Manifest-Version: 1.0
Main-Class: com.mdragonway.agps.VGListener
Class-Path: ./lib/log4j.jar ./lib/msbase.jar ./lib/mssqlserver.jar
./lib/msutil.jar ./lib/weblogic.jar ./lib/xbean.jar
把生成的jar文件
3.复制Java
应用程序的支持包及本地化文件
把MANIFEST.MF文件中的Class-Path项设置指把定的类库文件拷贝到agps目录中的lib目录下,把资源文件拷贝到agps目录下,
4、编写运行agps.jar包的批处理程序“run.bat”
在myswt_application目录下创建一个批处理程序run.bat(名字任取,扩展名必须是bat),其内容仅一句语句,如下:
javaw -jar agps.jar
说明:
l javaw对应c:\jdk\jre\bin\javaw.exe文件,如果windows提示命令未发现,则需要将c:\jdk\jre\bin路径加入到windows环境变量path中。
l 在运行程序的时候有一个讨厌的黑色命令行窗口,要去掉它,可以将run.bat内容更改如下:“start javaw -jar myswt.jar”,start是指调用了windows的“运行”命令。
l 如果想将swt-win32-3063.dll也放在单独的目录中,如“D:\myswt_application\resources”目录,则需将run.bat内容更改为:
start javaw -Djava.library.path=./resources/ -jar myswt.jar
上述四步骤便可以完成一个带有各种资源(例如配置文件,本地化文件等)的工程的打包发布。
分享到:
相关推荐
通过此功能,可以在单个JAR中为不同的Java运行时环境打包相同类的多个版本。 该示例显示了考虑Java版本8、9和10以及Java模块的情况下该选项的使用。 要求 Java> = 10编译器 编译应用 执行构建脚本或通过命令行构建...
Java 运行时环境(JRE)允许您执行 Java 应用程序,组件和小程序,而 Java 开发套件(JDK)提供了一套全面的工具,供程序员构建,运行,调试甚至记录 Java 代码。 您还可以访问 JRE 的 Java 虚拟机(JVM)组件以及...
Java 运行时环境(JRE)允许您执行 Java 应用程序,组件和小程序,而 Java 开发套件(JDK)提供了一套全面的工具,供程序员构建,运行,调试甚至记录 Java 代码。 您还可以访问 JRE 的 Java 虚拟机(JVM)组件以及...
大华的java笔试题Dahua-Firmware-Mod-Kit 解压并重新打包大华网络摄像机固件升级镜像。 这是什么? 提取“”大华固件升级镜像的脚本,可以获取。 以及一个脚本,用于从先前提取(并且可能已修改)的固件升级映像构建...
此外,该项目中的打包程序目前使用 apt-get,如果我们将 bash 完全移植到 puppet,我们可能能够支持更多发行版 笔记 在耐克内部,我们不直接使用来自规范的图像。 相反,我们创建了我们自己的基础 ami 来配置诸如 ...
其实,你可以通过添加一个Tcl解释器,来将自己的应用程序组织成一组操作原语,并使用这些原语来构造最符合用户需求的脚本程序。这样还可以允许其他的程序通过编程来控制你的应用程序,以使套装应用程序能够很好地在...
请记住,下载并安装此应用程序即表示您同意。 如何编译 首先,请确保您具有 。 登录VM,选择一个临时文件夹(例如~/build ),然后执行以下操作: git clone https://github.com/droboports/java8.git cd java8 ...
PDS4 JParser Java库,提供用于将PDS4表和图像对象上的信息解析和导出为CSV,PNG,Vicar,Fits等各种格式的API。...当新的PDS4信息模型可用时,运行以下脚本以下载最新的IM并推送至git。 $ build/pre-bu
jdk已经包括jre了,所以如果我们只是要求有一个java程序运行的环境,只需要安装jre就行了;安装好jre,配置一下java的环境变量就可以用了。如果是图形界面的程序,点点鼠标就OK了; 用perl 开发的程序,是需要perl...
敏捷 Dex:数据浏览器是用于数据科学的强大工具。 它是在JavaFX之上用Groovy和Java编写的,并且具有以下功能: ...打包的发行版本往往大大落后于Git版本。 通过吉特 下载: git clone https://git
发行要点该应用程序是使用JHipster 5.4.2生成的,您可以在找到文档和帮助。发展在生成此项目之前,必须在计算机上安装和配置以下依赖项: :我们使用Node来运行开发Web服务器并构建项目。 根据您的系统,可以从源...
这是用于开发适用于和的Minecraft mod的通用工作区,以及用于将发行版打包为一个jar并将其发布的工具。 请注意,这不是避免对您的mod进行两次编码的方法,仍然必须为每个modloader对其进行编码。 优点 用户将不必...
该软件与命令行包装程序脚本一起打包在JAR文件中,以执行验证。 文献资料 最新版本的Validate Tool的文档(包括发行说明,软件的安装和操作)可在在线获得。 如果要获取最新文档,包括自上一发行版以来的所有更新,...
建筑可以使用buildImg/子目录中的shell脚本来构建和打包F-TEP。 该项目的主要部分可以通过Gradle轻松构建。 为了简化在完整打包管道中使用第三方依赖项的过程,我们提供了一个定义完整构建环境的Dockerfile,适用于C...
使用release_wf.sh脚本管理发行版它基于Version.txt中的版本创建一个标签,然后将其编号增加一个,然后将其插入VERSION.txt中,然后将其推送到存储库中。之后,运行apply_kube_deployment.sh以在集群上获取新映像。 ...