IntelliJ IDEA 开发 swing(二)

程序编译完成后,需要打包发布,如果有 fat_jar 的同学可以通过该插件打包,这里是使用 ant 来打包,步骤如下:

一、编写 build.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="create_jar" name="swingdemo">
    <property name="src.dir" value="src"/>
    <property name="build.dir" value="target"/>
    <property name="classes.dir" value="classes"/>
    <property name="jar.dir" value="${build.dir}/jar"/>
    <property name="lib.dir" value="lib"/>
    <property name="config.dir" value="config"/>
    <property name="plugin.dir" value="plugin"/>
    <property name="db.dir" value="db"/>
    <property name="jar_name" value="app"/>
    <property name="start_class" value="swingdemo.SwingDemoMain"/>
    <path id="application" location="${jar.dir}/${jar_name}.jar"/>
    <path id="lib_path">
        <fileset dir="${lib.dir}" includes="**/*.jar"/>
    </path>
    <target name="clean" description="清除构建">
        <delete dir="${build.dir}"/>
    </target>
    <!-- 编译系统有intellij处理
    <target name="compile" description="编译系统">
        <mkdir dir="${classes.dir}"/>
        <javac srcdir="src" destdir="${classes.dir}" encoding="GBK" classpathref="lib_path"/>
    </target> -->
    <target name="resource" description="初始化资源文件">
        <mkdir dir="${build.dir}"/>
        <mkdir dir="${build.dir}\jar"/>
        <copydir dest="${build.dir}\lib" src="${lib.dir}"/>
        <copydir dest="${build.dir}\config" src="${config.dir}"/>
        <copydir dest="${build.dir}\db" src="${db.dir}"/>
        <copydir dest="${plugin.dir}\plugin" src="${plugin.dir}"/>
        <copy todir="${build.dir}" file="start.bat"/>
    </target>
    <target name="create_jar" depends="clean,resource" description="打包">
        <pathconvert property="mf.classpath" pathsep=" ">
            <mapper>
                <chainedmapper>
                    <!-- 移除绝对路径 -->
                    <flattenmapper />
                    <!-- 加上lib前缀 -->
                    <globmapper from="*" to="../lib/*" />
                </chainedmapper>
            </mapper>
            <fileset dir="${lib.dir}">
                <include name="*.jar" />
            </fileset>
        </pathconvert>
        <jar destfile="${jar.dir}/${jar_name}.jar" basedir="${classes.dir}">
            <manifest>
                <attribute name="Main-Class" value="${start_class}"/>
                <attribute name="Class-Path" value="${mf.classpath} "/>
            </manifest>
        </jar>
    </target>
    <target name="run" depends="create_jar" description="运行">
        <java fork="true" classname="${start_class}">
            <classpath>
                <path refid="lib_path"/>
                <path refid="application"/>
            </classpath>
        </java>
    </target>
</project>

二、编写 start.bat

set path=c:\Program Files (x86)\Java\jdk1.7.0\bin;%path% cd jar
java -jar swingdemo.jar

 

三、加入 lib 包

由于程序使用的 intellij 自带的布局方式,所以需要引用 intellij 内的一个 jar 包,该 jar 包的位置处于:../IntelliJ IDEA 12.1.1/lib/forms_rt.jar ,将该 jar 包拷贝到工程的 lib 文件夹内。

四、调用 ant 脚本

点击 intellij idea 工作区右侧的插件面板上的 Ant Build 按钮,弹出界面,点击“+”添加工程内的 build.xml 文件,可以选择四个阶段来进行程序的打包。

五、完成

打包完成后,会在工程路径下生成 target 文件夹,文件夹内包含程序及所需文件,点击 start.bat 即可运行。