使用ANT,无法访问conf目录下的文件

     在使用ANT的过程中遇到了问题,工程目录下的conf目录存放的是一些配置文件,在程序中需要读取这此文件。
    使用IDE(如JCreator)编译运行程序,在IDE环境中增加了classpath路径“E:\MyProject\conf”后,在Main.java中调用
      ClassLoader.getSystemResource("default.properties");
    可以查找到default.properties文件并获得其路径E:\MyProject\conf\default.properties。
    但是在使用ANT编译运行时,正确设置了<classpath>,可还是无法调用ClassLoader.getSystemResource查找到文件。

工程的目录如下:
E:\MyProject
 |- build
 |  |- classes
 |  |  |- app
 |  |     |- Main.class
 |  |- test
 |  |  |- app
 |        |- MainTest.class
 |
 |- src
 |  |- app
 |     |- Main.java
 |
 |- test
 |  |- app
 |     |- Main.Test.java
 |
 |- lib
 |  |- commons-lang-2.4.jar
 |
 |- conf
 |  |- default.properties
 |
 |- build.xml

build.xml部分内容如下:
<?xml version="1.0"?>

<project name="myproject" default="test" basedir=".">
  <property name="build.dir" value="build"/>
  <property name="src" value="src"/>
  <property name="test.src" value="test"/>
  <property name="lib.dir" value="lib"/>
  <property name="conf.dir" value="conf"/>

  <path id="lib.path">
    <fileset dir="${lib.dir}">
      <include name="**/*.jar"/>
    </fileset>
  </path>
 
  <path id="run.classpath">
    <pathelement location="${build.dir}/classes"/>
    <pathelement location="${conf.dir}"/> <!-- 已经添加了conf目录 -->
    <path refid="lib.path"/>
  </path>
 
  <!-- 测试default.properties是否存在 -->
  <available property="have.conf" resource="default.properties">
    <classpath refid="run.classpath"/>
  </available>
 
  <!-- 运行ant echo时,返回have.conf: true,证明可以找到文件 -->
  <target name="echo">
    <echo message="have.conf: ${have.conf}"/>
  </target>
 
  <!-- 运行ant run时,ClassLoader.getSystemResource("default.properties")返回却为null -->
  <target name="run" depends="compile">
    <java classname="app.Main">
      <classpath refid="run.classpath"/>
    </java>
  </target>
</project>

你可能感兴趣的:(使用ANT,无法访问conf目录下的文件)