我已将属性文件放入动态 Web 项目的 Webcontent 文件夹中。但是,它会抛出空指针异常。这是我的代码。
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("Resources.properties");
System.out.println(input);
Properties properties = new Properties();
properties.load(input);
System.out.println("MySQL Driver :"+properties.getProperty("mysqlDriver"));
我的属性文件包括
mysqlDriver = com.mysql.jdbc.Driver
我在 InputStream input = classLoader.getResourceAsStream("Resources.properties"); 处收到错误
错误是
Feb 09, 2016 2:58:50 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [DatabaseAccess] in context with path [/iNTU] threw exception
java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Unknown Source)
at java.util.Properties.load0(Unknown Source)
最佳答案
将“Resources.properties”文件放入动态 Web 项目的“src”文件夹中(通过右键单击 Jara Resources/src > 新建 > 常规 > 文件来创建它,命名为“MyResources.properties”)。 然后,读取属性文件的代码应更新为:
InputStream input = classLoader.getResourceAsStream("/Resources.properties");
//If you use a subfolder of src, please update accordingly.
这样,Eclipse 将知道如何将编译后的文件与属性文件一起部署到 war 的 WEB-INF/classes。
关于java - 无法在 Eclipse for Java 的动态 Web 项目中加载属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35286843/