使用Ant打包 来调用properties 文件

一, Java应用调用
1,放在应用下面
p.load(new FileInputStream("task.properties"));

properties文件不在jar中

2,放在source folder下
			InputStream inputStream = RunUCMDBTask.class.getClassLoader().getResourceAsStream("task.properties");
			p.load(inputStream);

properties文件包含在jar中,但是交给客户后,客户需要从jar包修改properties文件,不可行。

3, 用ant来打包
这样在外面就能修改了
<?xml version="1.0" encoding="UTF-8"?>
<project name="uCMDB Schedule Task" default="deploy" basedir=".">
	<property name="Main_Class" value="com.hp.schedule.task.RunUCMDBTask"/>
	<property name="deploy.dir" value="deploy"/>

	<path id="schedule.classpath">
		<fileset dir="lib" includes="*.jar"/>
	</path>

	<pathconvert property="manifest.classpath" pathsep=" ">
		<path refid="schedule.classpath"/>
		<mapper>
			<chainedmapper>
				<flattenmapper/>
				<globmapper from="*.jar" to="lib/*.jar"/>
			</chainedmapper>
		</mapper>
	</pathconvert>

	<target name="clean" >
		<delete dir="${deploy.dir}"/>
	</target>

	<target name="init" depends="clean">
		<tstamp/>
		<mkdir dir="${deploy.dir}"/>
		<mkdir dir="${deploy.dir}/conf"/>
		<mkdir dir="${deploy.dir}/log"/>
		<mkdir dir="${deploy.dir}/lib"/>
	</target>

	<target name="compile">
		<jar destfile="${deploy.dir}/uCMDB Schedule Task.jar" >
			<fileset dir="bin"/>
			<manifest>
				<attribute name="Main-Class" value="${Main_Class}"/>
				<attribute name="Class-Path" value=". ${manifest.classpath}" />
			</manifest>
		</jar>
	</target>

	<target name="deploy" depends="init,compile">
		<copy todir="${deploy.dir}/lib">
			<fileset dir="./lib/">
				<include name="api-internal.jar"/>
				<include name="commons-lang-2.4.jar"/>
				<include name="log4j-1.2.14.jar"/>
				<include name="ucmdb-api.jar"/>
			</fileset>
		</copy>
		<copy file="conf/task.properties" tofile="${deploy.dir}/conf/task.properties" />
	</target>
</project>



二, web应用
public static String getAdapterConfigFile() {
		return AppContext.GetInstance().getContext().getRealPath("/")
				+ File.separator + WEB_INF + File.separator + "classes"
				+ File.separator + CONF + File.separator + "adapter.properties";
	}


你可能感兴趣的:(properties)