java - 无法在 Eclipse for Java 的动态 Web 项目中加载属性文件

标签 java eclipse

我已将属性文件放入动态 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/

相关文章:

Java,用Runtime.exec()继承类路径

java - 第一个类型 boolean 第二个类型 char java 错误

java - 从 Android 移动应用程序连接到笔记本电脑上的数据库

java - CoAP 服务器无法启动

java - Android:如何让用户单击按钮来创建(而不是转到)新 Activity

eclipse - 无法从通过 Eclipse 启动的 Tomcat 服务器重新连接到 Derby

java - Android ClassNotFoundException : Didn't find class on path: Dexpathlist

java - 如何退出包含Java的Callable ExecutiorService MultiThreading的循环(Android)

java - 在 Eclipse 中使用 Java 和 RXTX 进行串口通信

java - 如何防止单个列在 JTable 中被重新排序?