Reputation: 611
the structure of the example project is:
.
|-- ./build
| `-- ./build/TestAntLoadFile.class
|-- ./build.xml
|-- ./dist
| |-- ./dist/icpFinder.jar
| `-- ./dist/icp-finder.properties
|-- ./icp-finder_bak.properties
`-- ./src
`-- ./src/TestAntLoadFile.java
and the code getting the properties file is:
public class TestAntLoadFile {
private static final String CUSTOMER_CONFIG_FILE_NAME
= "icp-finder.properties";
public static void main(String[] args) {
InputStream custumerConfigIn = TestAntLoadFile.class.
getClassLoader().getResourceAsStream(CUSTOMER_CONFIG_FILE_NAME);
System.out.println("custumerConfigIn: " + custumerConfigIn);
}
}
and build.xml core contend is :
<path id="run.classpath">
<fileset dir = "${dist.dir}" >
<include name="**/*.jar"/>
<include name="**/*.properties"/>
<include name="./icp-finder.properties"/>
</fileset>
</path>
<target name="run" depends="jar">
<java fork="true" classname="TestAntLoadFile">
<classpath>
<path refid="run.classpath"/>
</classpath>
</java>
</target>
the project run well in eclipse, Has anybody got any suggestions?
Upvotes: 2
Views: 3166
Reputation: 78105
Rather than including the properties file itself in the classpath, you need to include the directory it resides in, something like this for example:
<path id="run.classpath">
<fileset dir="${dist.dir}" >
<include name="**/*.jar"/>
</fileset>
<dirset dir="${dist.dir}" />
<pathelement path="${dist.dir}" />
</path>
Upvotes: 2