Ant应用--将JAR转换成EXE

来源:互联网 发布:php数组在末尾添加元素 编辑:程序博客网 时间:2024/05/17 19:20

在WINDOWS下运行JAR还是不方便的,所以找了个工具将JAR转成EXE.

一 准备工作

exe4java 3.1版本 

二 生成exe4java的配置文件

这个完全可以参考该软件的帮助,很容易上手。

三 BUILD.XML

<?xml version="1.0" encoding="UTF-8"?>
<project name="MmsSender" default="finish" basedir=".">
 <path id="exe4j.path">
  <pathelement path="D:/Program Files/exe4j/bin/exe4j.jar"/>
 </path>
 <target name="init">
  <echo message="init"/>
  <property name="deploy.dir" value="deploy"/>
  <property name="projectname" value="src"/>
  <property name="lib.dir" value="${basedir}/lib"/>
  <property name="lib.dir.jdom" value="${lib.dir}/jdom.jar"/>
  <property name="src.dir" value="src"/>
  <property name="exe4j.dir" value="D:/Program Files/exe4j/bin/exe4j.jar"/>
  <path id="base.path">
   <pathelement location="${lib.dir.jdom}"/>
   <pathelement location="${lib.dir.log}"/>
   <pathelement location="${lib.dir.mm7api}"/>
   <pathelement location="${lib.dir.msbase}"/>
   <pathelement location="${lib.dir.mssqlserver}"/>
   <pathelement location="${lib.dir.msutil}"/>
   <pathelement location="${lib.dir.xercesImpl}"/>
  </path>
 </target>
 <target name="clean" depends="init">
  <echo message="clean"/>
  <delete dir="${tempclass.dir}"/>
  <delete dir="${deploy.dir}"/>
  <delete file="${programName}.jar"/>
  <delete file="${programName}.exe"/>
 </target>
 <target name="prepare" depends="init,clean">
  <echo message="prepare"/>
  <mkdir dir="${tempclass.dir}"/>
  <mkdir dir="${deploy.dir}"/>
 </target>
 <target name="javac-project" depends="prepare">
  <echo message="javac"/>
  <javac srcdir="${src.dir}" verbose="true" destdir="${tempclass.dir}" classpathref="base.path" includes="com/**" optimize="true" target="1.1" source="1.2" debuglevel="none"/>
 </target>
 <target name="unzip" depends="javac-project">
  <echo message="unzip"/>
  <unjar src="${lib.dir.mm7api}" dest="${tempclass.dir}"/> </target>
 <target name="jar-project" depends="unzip">
  <echo message="jar-project"/>
  <jar jarfile="${deploy.dir}/${programName}.jar" manifest="${manifest}">
   <fileset dir="tmpclasses">
    <include name="**/*.class"/>
    <include name="**/*.t"/>
    <!-- msutil.jar中的*.properties必须包含进来,否则运行时出错-->
    <include name="**/*.properties"/>
   </fileset>
  </jar>
 </target>
 <taskdef name="exe4j" classname="com.exe4j.Exe4JTask">
  <classpath refid="exe4j.path"/>
 </taskdef>
 <target name="jar2exe" depends="jar-project">
  <exe4j projectfile="${programName}.exe4j"/>
 </target>
 <target name="finish" depends="jar2exe">
  <echo message="finish"/>
  <delete dir="${tempclass.dir}"/>
 </target>
</project>

以上是我项目中的BUILD.XML文件,关健是以下部分:

1)指定JAR路径:
<path id="exe4j.path">
  <pathelement path="D:/Program Files/exe4j/bin/exe4j.jar"/>
 </path>

2) 定义任务类型
 <taskdef name="exe4j" classname="com.exe4j.Exe4JTask">
  <classpath refid="exe4j.path"/>
 </taskdef>

3)执行exe4java的配置文件
 <target name="jar2exe" depends="jar-project">
  <exe4j projectfile="${programName}.exe4j"/>
 </target>

简单吧,ANT虽然写起来比较麻烦,特别是刚开始的时候,但只要写好了,以后用起来就方便不少,关于这点我深有体会。

原创粉丝点击