Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Ant管理属性文件?_Ant_Properties - Fatal编程技术网

如何使用Ant管理属性文件?

如何使用Ant管理属性文件?,ant,properties,Ant,Properties,我有一个从属性文件(主机、端口)获取值的程序,属性文件的路径目前是硬编码的,但我希望能够编译属性文件并将其放置在与我编译的类(bin/)相同的目录中,当我制作jar并运行程序时,它应该自动从那里获取值,如何做到这一点?您应该能够使用“复制”任务将属性文件复制到bin目录中,与需要读取属性的java文件位于同一个包目录中。然后,使用“jar”任务对程序进行jar 在java程序中,您现在应该能够通过以下方式读取属性: Properties props = new Properties(); pro

我有一个从属性文件(主机、端口)获取值的程序,属性文件的路径目前是硬编码的,但我希望能够编译属性文件并将其放置在与我编译的类(bin/)相同的目录中,当我制作jar并运行程序时,它应该自动从那里获取值,如何做到这一点?

您应该能够使用“复制”任务将属性文件复制到bin目录中,与需要读取属性的java文件位于同一个包目录中。然后,使用“jar”任务对程序进行jar

在java程序中,您现在应该能够通过以下方式读取属性:

Properties props = new Properties();
props.load(getClass().getResourceAsStream("my.properties"));
String host = props.get("hostname");
String port = props.get("port");

好的,我知道了,所以我基本上把这个文件复制到使用它的类的同一个包中,现在的问题是我已经硬编码了属性文件的路径,它可以根据使用它的人而变化?如何获取java中的相对路径?每次我使用相对路径时,它都会说文件不存在,而实际上它确实存在。如果属性文件位于.jar文件中,则不需要绝对路径
getResourceAsStream(“my.properties”)
将从.jar文件的根级别加载“my.properties”。