Java 无法加载YAML jar资源

Java 无法加载YAML jar资源,java,yaml,snakeyaml,Java,Yaml,Snakeyaml,我正试图从Jar的resources文件夹加载一个.yml文件。我检索它的行(第33行:input=newfileinputstream(新URL(ClassLoader.getSystemClassLoader().getClass().getClassLoader().getResource(“/Resources/devConfig.yml”).getFile()).getPath();) 抛出NullPointerException private static void createM

我正试图从Jar的resources文件夹加载一个.yml文件。我检索它的行(第33行:
input=newfileinputstream(新URL(ClassLoader.getSystemClassLoader().getClass().getClassLoader().getResource(“/Resources/devConfig.yml”).getFile()).getPath();

抛出NullPointerException

private static void createMap() {
    InputStream input = null;
    try {
        input = new FileInputStream(new URL(ClassLoader.getSystemClassLoader().getClass().getClassLoader().getResource("/Resources/devConfig.yml").getFile()).getPath());   
    } catch (/*FileNotFoundException*/ Exception e) {
        e.printStackTrace();
    }
    Yaml yaml = new Yaml();
    try{
    Map l = (Map) yaml.load(input);
    }catch(Exception e){
        e.printStackTrace();
    }
    getDevConfig.map = (Map) yaml.load(input);
}
我在用图书馆

在同一个项目中,我有(几乎)完全相同的代码来加载Jar外部的YAML文件,唯一的区别是
input
是这样加载的:
newfileinputstream(新文件(“路径到文件夹”+filename))

我得到的例外情况是:

java.lang.NullPointerException
在util.getDevConfig.createMap(getDevConfig.java:33)
在util.getDevConfig.getKey(getDevConfig.java:48)

org.yaml.snakeyaml.error.YAMLException:java.io.IOException:流关闭
位于org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:200)
位于org.yaml.snakeyaml.reader.StreamReader.(StreamReader.java:60)
位于org.yaml.snakeyaml.yaml.load(yaml.java:412)
在util.getDevConfig.createMap(getDevConfig.java:43)
位于util.getDevConfig.getKey(getDevConfig.java:52)
原因:java.io.IOException:流已关闭
在java.io.PushbackInputStream.com上重新打开(PushbackInputStream.java:74)
位于java.io.PushbackInputStream.read(PushbackInputStream.java:166)
位于org.yaml.snakeyaml.reader.UnicodeReader.init(UnicodeReader.java:90)
位于org.yaml.snakeyaml.reader.UnicodeReader.read(UnicodeReader.java:122)
在java.io.Reader.read(Reader.java:140)
位于org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:184)

我的问题很简单:为什么会出现空指针异常?

Try
input=ClassLoader…..getResourceAsStream(…)
@peeskillet我还需要说
newfileinputstream()
?不。。。。没有
getFile().getPath()
@peeskillet尝试过它。。。仍然在类路径的根目录下获取异常(
src/Resources
,使用Maven
src/main/Resources/Resources
)?在路径中没有
/
的情况下尝试它。尝试
input=ClassLoader…..获取资源流(…)
@peeskillet我还需要说
newfileinputstream()
?不。。。。没有
getFile().getPath()
@peeskillet尝试过它。。。仍然在类路径的根目录下获取异常(
src/Resources
,使用Maven
src/main/Resources/Resources
)?在路径中没有
/
的情况下尝试它。尝试
input=ClassLoader…..获取资源流(…)
@peeskillet我还需要说
newfileinputstream()
?不。。。。没有
getFile().getPath()
@peeskillet尝试过它。。。仍然在类路径的根目录下获取异常(
src/Resources
,使用Maven
src/main/Resources/Resources
)?在路径中没有
/
的情况下尝试。
org.yaml.snakeyaml.error.YAMLException: java.io.IOException: Stream closed
at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:200)
at org.yaml.snakeyaml.reader.StreamReader.<init>(StreamReader.java:60)
at org.yaml.snakeyaml.Yaml.load(Yaml.java:412)
at util.getDevConfig.createMap(getDevConfig.java:43)
at util.getDevConfig.getKey(getDevConfig.java:52)

Caused by: java.io.IOException: Stream closed
at java.io.PushbackInputStream.ensureOpen(PushbackInputStream.java:74)
at java.io.PushbackInputStream.read(PushbackInputStream.java:166)
at org.yaml.snakeyaml.reader.UnicodeReader.init(UnicodeReader.java:90)
at org.yaml.snakeyaml.reader.UnicodeReader.read(UnicodeReader.java:122)
at java.io.Reader.read(Reader.java:140)
at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:184)