我的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)
有谁知道怎么做?
答案 0 :(得分:1)
当您输入ls foo
时,它不会搜索文件“foo”。在与实现ls命令的可执行文件或动态库相同的目录中。它在当前目录中搜索它,即从中启动ls
命令的目录。 Java也是如此。
new FileInputStream("../../../../properties/js.ldap.properties")
将从执行用于启动Tomcat的java
命令的目录开始搜索该文件。
包含这行代码的类的位置完全不相关。 BTW,大多数情况下,.class文件位于jar或war文件中,或两者兼而有之。