URLClassLoader getResourceAsStream返回null

时间:2018-06-22 12:36:15

标签: java nullpointerexception classloader embedded-resource

我在项目中有一个自定义ClassLoader,该加载了一个在运行时根据用户输入动态生成的类。对于构建它,我通常遵循此处this tutorial的指示,但由于类可能在运行时更改,因此使用URLClassLoader作为父元素。

它对于加载类本身很好,但是一旦尝试加载关联的类,它将在下面的代码的第4行(NullPointerException)上抛出stream.available(),因为返回的流是空值。

//file is "java\lang\Object.class" when throwing the exception
private byte[] loadClassFileData(String file) throws IOException { 
    InputStream stream = parent.getResourceAsStream(file);
    int size = stream.available();
    byte buff[] = new byte[size];
    DataInputStream in = new DataInputStream(stream);
    in.readFully(buff);
    return buff;
}

使用 getResourceAsStream() 的默认类加载器似乎无济于事。

0 个答案:

没有答案