Eclipse getResourceAsStream不开发任何流

Eclipse getResourceAsStream不开发任何流,eclipse,jar,stream,resources,Eclipse,Jar,Stream,Resources,正在尝试创建一个可执行的.jar,其中包含资源。快速问题: 为什么我会得到这段代码的NullPointerException String filename = "/settings.xml" try (InputStream is = this.getClass().getResourceAsStream(filename); BufferedReader reader = new BufferedReader(new InputStreamReader(is));)

正在尝试创建一个可执行的.jar,其中包含资源。快速问题: 为什么我会得到这段代码的NullPointerException

    String filename = "/settings.xml"
    try (InputStream is = this.getClass().getResourceAsStream(filename);
    BufferedReader reader = new BufferedReader(new InputStreamReader(is));)
    {
        settingArray = (boolean[]) xStream.fromXML(reader);
    }
我使用Eclipse,文件settings.xml位于项目的根目录中。以下代码工作正常,但在导出到jar之后就不行了:

    try (final BufferedReader reader = new BufferedReader(new FileReader(filename)))
    {
        settingArray = (boolean[]) xStream.fromXML(reader);
    }

要使用
this.getClass().getResourceAsStream(“/settings.xml”)
加载文件,该文件不得位于项目的根目录下。在运行时,Java不知道也不关心包含应用程序源代码的eclipse项目

它关心的是运行时类路径。文件必须位于类路径的根目录下。要到达那里,文件应该是

  • 如果从jar执行应用程序,则在jar文件的根目录下
  • 如果您从IDE执行应用程序,则位于bin(或类,或您选择命名eclipse存储编译的.class文件的目录)目录的根目录。要做到这一点,最简单的方法是将文件放在默认包中源目录的根目录下。Eclipse将通过复制将此源文件“编译”到bin目录

进行以下更改:filename=“/../settings.xml”没有成功:(