指定FileInputStream相对路径

时间:2014-09-17 19:23:27

标签: linux servlets fileinputstream

我的linux机器上有属性目录:

/home/webserver/tomcat6/properties

在其中我有:

js.db.properties
js.ldap.properties

调用这些属性文件的Servlet位于:

/home/webserver/tomcat6/webapps/myapp/WEB-INF/classes/myServlet.class

我正在尝试使用4个目录来获取属性文件。

FileInputStream ldapfis = new FileInputStream("../../../../properties/js.ldap.properties");

我得到了:

Encountered following error: java.io.FileNotFoundException: ../../../../properties/js.ldap.properties (No such file or directory)

有谁知道怎么做?

1 个答案:

答案 0 :(得分:1)

当您输入ls foo时,它不会搜索文件“foo”。在与实现ls命令的可执行文件或动态库相同的目录中。它在当前目录中搜索它,即从中启动ls命令的目录。 Java也是如此。

new FileInputStream("../../../../properties/js.ldap.properties")将从执行用于启动Tomcat的java命令的目录开始搜索该文件。

包含这行代码的类的位置完全不相关。 BTW,大多数情况下,.class文件位于jar或war文件中,或两者兼而有之。