Java应用程序工程模板
 
自己常用的一个java应用程序模板,节省了不少时间!
包含很多脚本:
 
一、启动脚本
 
starup.bat
set APP_LIBDIR=..\lib
setlocal EnableDelayedExpansion
set APP_CLASS_PATH=%XFIRE_HOME%
for %%c in ("%APP_LIBDIR%\*.jar") do set APP_CLASS_PATH=!APP_CLASS_PATH!;%%c
set APP_CLASS_PATH
java -cp %APP_CLASS_PATH% com.lavasoft.TestMain
 
startup.sh
#!/bin/sh

programdir="."
program="com.lavasoft.TestMain"

num=$#
temp=$CLASSPATH
#setting libs path
libs=../lib/*
append(){
                temp=$temp":"$1
}
for file in $libs;    do
                append $file
done
export CLASSPATH=$temp:.:../:$programdir
export LANG=zh_CN
res=`ps aux|grep java|grep $program|grep -v grep|awk '{print $2}'`
if [ -n "$res" ]
     then
                echo "TestMain already running"
else
             java -classpath $CLASSPATH    com.lavasoft.TestMain &
             sleep 3
                unset res
                res=`ps aux|grep java|grep $program|grep -v grep|awk '{print $2}'`
                if [ -n "$res" ]
                    then
                         echo "TestMain start success"
                    else
                         echo "TestMain start error"
                 fi
fi
 
二、log4j.properties
 
log4j.rootLogger=INFO,CONSOLE,LOGFILE

## CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=INFO
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss } - %-5p %c        %x - %m%n

## logfile
log4j.appender.LOGFILE=org.apache.log4j.RollingFileAppender

log4j.appender.LOGFILE.File=testapp.log
log4j.appender.LOGFILE.MaxFileSize=10MB
log4j.appender.LOGFILE.MaxBackupIndex=10
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss } -    %-p %c     %x - %m%n
 
三、build.xml
 
<?xml version="1.0" encoding="UTF-8"?>
<project name="testapp" basedir="." default="compile">

        <property environment="env"/>
        <property name="build.dir" value="./testapp"/>
        <property name="classes.dir" value="${build.dir}/bin"/>
        <property name="dist.dir" value="./testapp"/>

        <path id="classpath">
                <fileset dir="./lib">
                        <include name="*.jar"/>
                </fileset>
        </path>

        <target name="compile" depends="clean">
                <mkdir dir="${build.dir}"/>
                <mkdir dir="${classes.dir}"/>
                <mkdir dir="${build.dir}/lib"/>
                <copy toDir="${classes.dir}" failonerror="false">
                        <fileset dir="./src">
                                <include name="**/*.*"/>
                                <exclude name="**/*.java"/>
                                <exclude name="**/*.log"/>
                                <exclude name="**/*.iws"/>
                                <exclude name="**/*.ipr"/>
                                <exclude name="**/*.iml"/>
                        </fileset>
                </copy>
                <copy toDir="${build.dir}/lib" failonerror="false">
                        <fileset dir="./lib">
                        </fileset>
                </copy>
                <javac debug="on"
                             fork="true"
                             encoding="GBK"
                             destdir="${classes.dir}"
                             srcdir="./src"
                             extdirs="**/test/**"
                             classpathref="classpath">
                </javac>
        </target>

        <target name="jar" depends="compile">
                <mkdir dir="${dist.dir}"/>
                <copy toDir="${dist.dir}" failonerror="false">
                        <fileset dir="./src">
                                <include name="*.xml"/>
                                <include name="*.properties"/>
                                <include name="*.sh"/>
                        </fileset>
                </copy>
                <jar destfile="${dist.dir}/testapp.jar">
                        <fileset excludes="**/Test*.class,**/*.xml,**/*.properties,**/*.log,**/*.sh" dir="${classes.dir}"/>
                </jar>
        </target>

        <target name="clean">
                <delete dir="${build.dir}"/>
                <delete dir="${dist.dir}"/>
                <delete dir="${build.dir}/lib"/>
        </target>
        <target name="all" depends="clean,compile,jar"/>
</project>