【问题标题】:Null Pointer Exception for read properties file in IdeaIdea中读取属性文件的空指针异常
【发布时间】:2011-08-18 01:41:05
【问题描述】:

在idea 10.5中定义一个属性文件后,当我尝试使用它时,编译器显示空指针异常!我尝试了任何我认为在更改属性文件路径中修复它的方法,... 这是我写的代码: 谢谢。 初级程序员!!!

public class MainDlg{
    Properties properties=new Properties();
    public MainDlg() {
        try {
            InputStream reader=MainDlg.class.getResourceAsStream("propFile");
            properties.load(reader);

【问题讨论】:

  • 您已提出 4 个问题,但没有一个被接受的答案。在提出更多问题之前,请先接受一些问题。

标签: java exception intellij-idea


【解决方案1】:

听起来reader 为空。确保路径正确。

如果属性文件是根目录,那么你应该

InputStream reader=MainDlg.class.getResourceAsStream("/propFile");

【讨论】:

  • 我知道 reader 为空,但我不知道为什么!!当我按住 Ctrl 键并将鼠标悬停在文件名上时,Idea 会高亮显示它。
  • 你能分享 .java 和你的 prop 文件在哪里吗?我们可以提供帮助
  • ok!prop 文件在 src 目录中,MainDlg 在演示包中!我复制了这个包中的文件,但它还没有修复!!!
  • 我之前测试过但是不行!不知道问题出在哪里!!谢谢
  • 这是一个 maven 项目吗?我认为问题在于您的 IDE 或 Maven 没有处理这些文件。
【解决方案2】:

如果找不到资源,getResourceAsStream 将返回 null。你确定吗,相对于 MainDlg.class 文件的位置,有一个名为 presentation 的文件夹,其中有一个名为 propFile 的文件?

【讨论】:

    【解决方案3】:

    getResourceAsStream 是case sensitive。确保您的文件名完全匹配。

    【讨论】:

      【解决方案4】:

      你把propFile放在哪里了?它应该驻留在Source 根目录中,但是默认情况下IDEA 不会将其复制到类路径中,因为Settings | 中的空扩展名没有模式。 Compiler | Resource Patterns.

      建议您将文件重命名为 something.properties,以便 IDEA 将其复制到输出(类路径),并将其作为类路径资源可用。

      如果您不想重命名文件,请将其放在源根目录之外的某个目录中,并将该目录配置为 IDEA 中的库依赖 Project Structure | Modules | Dependencies,这样它就可以从类路径中获得了。

      【讨论】:

        【解决方案5】:

        可能您的资源(prop 文件)没有放入 classes 目录。无论如何,这里有一个提示;)在阅读该属性之前,请打印以下内容:

        new java.util.File(".").getAbsolutePath()
        

        这应该可以让您很好地了解您的实际当前目录是什么 希望这能解决您的问题。祝你好运!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-05-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-11
          • 2020-06-23
          • 2018-12-30
          相关资源
          最近更新 更多