Java getResource不是';t在罐子里工作

Java getResource不是';t在罐子里工作,java,file,resources,Java,File,Resources,因此getResource在jar中不起作用,或者正如我在代码中看到的那样,当我要求列出文件时,它会将文件的子文件返回null。在eclipse中,它工作得非常好。我需要它作为一个文件,以列出它的孩子,其中更多的文件 /与我添加的类文件夹有关 以下是代码块: try { mapFiles = (new File(LevelPickerScreen.class.getResource("/Maps").toURI())).listFiles(); } catch (

因此getResource在jar中不起作用,或者正如我在代码中看到的那样,当我要求列出文件时,它会将文件的子文件返回null。在eclipse中,它工作得非常好。我需要它作为一个文件,以列出它的孩子,其中更多的文件

/与我添加的类文件夹有关

以下是代码块:

    try {
        mapFiles = (new File(LevelPickerScreen.class.getResource("/Maps").toURI())).listFiles();
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }

getResource
工作得非常好-但是您正在调用
文件
构造函数,而该资源并不作为
文件
存在。它不是一个文件,而是jar文件中的一个资源


我怀疑您也会发现很难让它以这种方式列出jar文件中的资源-您可以单独加载jar文件,但如果只是在构建过程中自动列出所有子项,可能会更简单,然后将一个文件作为
/Maps/Maps.txt
放入jar文件,其中包含一个地图名称列表。然后,您可以使用
getResource
getresourceastream
依次加载它们中的每一个,但不要尝试将
文件
API与之一起使用。

为什么它似乎不起作用,这是比较好的,因为如果配置得当,它肯定会起作用。你能解释一下你的jar文件是如何构造的吗?您的Maps文件夹是直接放在jar中还是子文件夹中?至于单独加载jar文件,您可以使用ZipUtil。罐子基本上是zips@k_g:是的,这只是一件假货。我认为事先列出这些文件会更简单。