我的程序使用log4j做日志輸出。
程序在eclipse下運行,日志輸出正常。我的build.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project name="USSD" basedir="." default="compile">
??? <property name="src.dir" value="src"/>
??? <property name="build.dir" value="bin"/>
??? <property name="lib.dir" value="F:\OPEN-LIB"/>
??? <path id="compile.lib">
??? ??? <fileset dir="${lib.dir}">
??? ??? ??? <include name="ojdbc14.jar"/>??? ??? ???
??? ??? ??? <include name="log4j-1.2.12.jar"/>
??? ??? ??? <include name="commons-dbcp-1.2.2.jar"/>
??? ??? ??? <include name="commons-pool-1.3.jar"/>???
??? ??? </fileset>
??? ??? <pathelement path="${build.dir}"/>???
??? </path>
??? <target name="initdir">
??? ???
??? </target>
??? <target name="compile">
??? ??? <javac srcdir="${src.dir}" destdir="${build.dir}">
??? ??? ??? <classpath refid="compile.lib"/>
??? ??? </javac>
??? </target>
??? <target name="run" depends="compile">
??? ??? <java dir="${build.dir}" classname="com.cybersoftchina.ussd.PushMain">
??? ??? ??? <classpath refid="compile.lib"/>
??? ??? </java>
??? </target>
</project>
我的第一次分析,就覺得可能是,ant系統在運行的時候沒有找到配置文件log4j.properties.
所以,我就把src\log4j.properties 復制到 工程的根目錄,然后再運行,發現還是不行。
所以,我就想到是src下的配置文件,在編譯之后應該復制到了和classes目錄下相對應的路徑。
所以,我就到bin目錄下找,果然沒有。
因為我在build.xml文件中,compile的時候,并沒有把配置文件log4j.properties復制到其對應目錄。
所以,復制src\log4j.properties到bin\log4j.properties。
再運行,OK了。
解決方案:
把src目錄的所有配置文件(此處是log4j.properties配置文件)復制到classes目錄的對應目錄。
修改build.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<project name="USSD" basedir="." default="compile">
??? <property name="src.dir" value="src"/>
??? <property name="build.dir" value="bin"/>
??? <property name="lib.dir" value="F:\OPEN-LIB"/>
??? <path id="compile.lib">
??? ??? <fileset dir="${lib.dir}">
??? ??? ??? <include name="ojdbc14.jar"/>??? ??? ???
??? ??? ??? <include name="log4j-1.2.12.jar"/>
??? ??? ??? <include name="commons-dbcp-1.2.2.jar"/>
??? ??? ??? <include name="commons-pool-1.3.jar"/>???
??? ??? </fileset>
??? ??? <pathelement path="${build.dir}"/>???
??? </path>
??? <target name="initdir">
??? ???
??? </target>
??? <target name="compile">
??? ??? <javac srcdir="${src.dir}" destdir="${build.dir}">
??? ??? ??? <classpath refid="compile.lib"/>
??? ??? </javac>
??? </target>
??? <target name="run" depends="compile">
??? ??? <java dir="${build.dir}" classname="com.cybersoftchina.ussd.PushMain">
??? ??? ??? <classpath refid="compile.lib"/>
??? ??? </java>
??? </target>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project name="USSD" basedir="." default="compile">
??? <property name="src.dir" value="src"/>
??? <property name="build.dir" value="bin"/>
??? <property name="lib.dir" value="F:\OPEN-LIB"/>
??? <path id="compile.lib">
??? ??? <fileset dir="${lib.dir}">
??? ??? ??? <include name="ojdbc14.jar"/>??? ??? ???
??? ??? ??? <include name="log4j-1.2.12.jar"/>
??? ??? ??? <include name="commons-dbcp-1.2.2.jar"/>
??? ??? ??? <include name="commons-pool-1.3.jar"/>???
??? ??? </fileset>
??? ??? <pathelement path="${build.dir}"/>???
??? </path>
??? <target name="initdir">
??? ???
??? </target>
??? <target name="compile">
??? ??? <javac srcdir="${src.dir}" destdir="${build.dir}">
??? ??? ??? <classpath refid="compile.lib"/>
??? ??? </javac>
??? ??? <copy todir="${build.dir}">
??? ??? ??? <fileset dir="${src.dir}">
??? ??? ??? ??? <include name="**/*.properties"/>???
??? ??? ??? ??? <include name="**/*.xml"/>
??? ??? ??? </fileset>
??? ??? </copy>
??? </target>
??? <target name="run" depends="compile">
??? ??? <java dir="${build.dir}" classname="com.cybersoftchina.ussd.PushMain">
??? ??? ??? <classpath refid="compile.lib"/>
??? ??? </java>
??? </target>
</project>
上面的深藍色的部分是新添加的部分。這樣,在編譯的時候就把所有的配置文件也一同復制到了class文件夾下面了。
再ant run ,就在文件中有日志了。
|----------------------------------------------------------------------------------------|
版權聲明 版權所有 @zhyiwww
引用請注明來源 http://www.tkk7.com/zhyiwww
|----------------------------------------------------------------------------------------|
posted on 2008-12-19 11:41
zhyiwww 閱讀(3890)
評論(0) 編輯 收藏 所屬分類:
java basic 、
j2ee