我需要能够使用FileInoputStream读取属性文件。 我有3个属性文件:
Properties props = new Properties();
Properties props2 = new Properties();
Properties props3 = new Properties();
FileInputStream ldapfis = new FileInputStream("/home/webserver/tomcat6/properties/js.ldap.properties");
FileInputStream smtpfis = new FileInputStream("/home/webserver/tomcat6/properties/js.smtp.properties");
FileInputStream dbfis = new FileInputStream("/home/webserver/tomcat6/properties/js.db.properties");
props.load(ldapfis);
props2.load(smtpfis);
props2.load(dbfis);
String host = props.getProperty("ldap.provider.host");
String dbName = props2.getProperty("db.name");
这是你在linux中用绝对路径做的吗? 可以这样做吗?
答案 0 :(得分:1)
new FileInputStream("/home/webserver/tomcat6/properties/js.ldap.properties");
如果文件路径以斜杠(/)开头,则将其作为路径。
但是如果文件路径不是以斜杠(/)开头,那么它是绝对路径。它将尝试使用java home追加路径。
对于Ex
new FileInputStream("properties/js.ldap.properties");
它将追加java path home
如果java home为/home/webserver/tomcat6/
,则会尝试在/home/webserver/tomcat6/properties/js.ldap.properties
下找到。
答案 1 :(得分:1)
执行此操作并不是真的可以,因为如果您在任何其他位置安装tomcat,甚至从tomcat6升级到tomcat7,您的所有代码都将中断。
我建议使用应该指向tomcat主目录的System.getProperty("CATALINA_HOME")
。然后,您可以根据该路径获取路径。