Servlets 从父目录中的.properties文件读取值对

Servlets 从父目录中的.properties文件读取值对,servlets,bundle,properties-file,Servlets,Bundle,Properties File,我有一个servlet在下面 C:\Program Files (x86)\Apache Software Foundation\tomcat_8.0.9\webapps\myApp 我在文件夹属性下有3.properties文件: C:\Program Files (x86)\Apache Software Foundation\tomcat_8.0.9\properties C:\Program Files (x86)\Apache Software Foundation\tomcat

我有一个servlet在下面

C:\Program Files (x86)\Apache Software Foundation\tomcat_8.0.9\webapps\myApp
我在文件夹属性下有3.properties文件:

C:\Program Files (x86)\Apache Software Foundation\tomcat_8.0.9\properties
 C:\Program Files (x86)\Apache Software Foundation\tomcat_8.0.9\properties
一旦我在linux上部署它,它也将位于
webapss/properties
目录下

现在,在我的windows计算机上,我发现以下代码无法工作:

File file = new File("C:\\Program Files (x86)\\Apache Software Foundation\\tomcat_8.0.9\\webapps\\properties");

URL[] urls = {file.toURI().toURL()};
ClassLoader loader = new URLClassLoader(urls);
ldap = ResourceBundle.getBundle("js.ldap.properties", Locale.getDefault(), loader);
smtp = ResourceBundle.getBundle("js.smtp", Locale.getDefault(), loader);
db   = ResourceBundle.getBundle("js.db", Locale.getDefault(), loader);

String adminName = ldap.getString("ldap.provider.admin.user");  
System.out.println("adminName name: "+ adminName);
它抛出了无法找到基名称js.ldap、locale en_US的捆绑包

有人知道我做错了什么吗?

你写道

我在文件夹属性下有3.properties文件:

C:\Program Files (x86)\Apache Software Foundation\tomcat_8.0.9\properties
 C:\Program Files (x86)\Apache Software Foundation\tomcat_8.0.9\properties
但您的代码正在查找

 C:\Program Files (x86)\Apache Software Foundation\tomcat_8.0.9\webapps\properties
我让它工作了:)


感谢大家的帮助

我在文件夹properties::what's name下有3.properties文件。粘贴
目录C:\Program Files(x86)\Apache Software Foundation\tomcat_8.0.9\properties的输出。为什么不将属性绑定到与应用程序相同的类路径中?为什么要将类和属性文件放在这个目录下,这个目录应该包含要部署的war文件?好的。别忘了我在你问的另一个问题中的建议,关于不要硬编码tomcat主目录。