访问属性文件:Java和Linux的
这是我的文件夹结构访问属性文件:Java和Linux的
proj
--src
--config
--bin
在linux下的
/home/proj/src
/home/proj/config
我的config文件夹中包含log4j的属性文件。
我想在linux中执行我的java类。
这是我如何在我的java类访问它(这肯定是错误的)
String propFile = "/../config/Log4jprop.properties";
ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
URL logPropFile = systemClassLoader.getResource(propFile);
PropertyConfigurator.configure(logPropFile);
我需要能够从我的课访问我的属性文件在Linux操作系统。
我命令的一部分是如下
java -classpath /home/proj/config/Log4jprop.properties:./ Start
我怎样才能确保日志属性文件是只读?
解决的办法之一可能是:
- 删除你的 “属性文件读取的代码在所有”
-
与
的Java -Dlog4j.configuration运行命令= /家/proj/config/Log4jprop.properties:./开始
或者:
- 重命名你的属性文件log4j.properties
- 将其添加到您的类路径
是的你的第二个解决方案work.thanks – Abi 2013-03-14 11:00:09
如果您传递的属性文件的路径,那么这是选项:
props.load(new FileReader("/home/whatever/config.properties"));
我不能硬编码它,我需要给出一个相对路径 – Abi 2013-03-14 10:32:24
你可以做到这一点,设置classpath以“凸出”的文件夹后。
FileInputStream str = null;
Properties prop = new Properties();
try
{
str = new FileInputStream("config/Log4jprop.properties");
prop.load(str);
PropertyConfigurator.configure(prop);
}catch(IOException ex) {
ex.printStackTrace();
}finally {
if(str != null) {
try {
str.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
如果该文件是在类路径中,那么你并不需要指定的路径,只如果你正在使用类加载器加载它,文件名将会执行。 – 2013-03-14 10:30:09