【问题标题】:ClassLoader getResourceAsStream not loading some files in same dirClassLoader getResourceAsStream 未在同一目录中加载某些文件
【发布时间】:2013-09-29 15:47:50
【问题描述】:

我的问题是我可以在同一目录中加载一些文件,但不能加载其他文件。

以下内容将一致地在一些文件上返回 null:

ClassLoader.getSystemClassLoader().getResourceAsStream(pathStr)

在 'jar tf' 之后在 jar 中找到的路径子集:

app-jade/user/userSettings.jade
app-jade/user/userPassword.jade
app-jade/user/userEmail.jade
app-jade/user/userInfoSettings.jade

我可以加载这个子集中的所有 .jade 文件,除了 userSettings.jade。我在尝试获取资源之前打印了路径字符串,它们与 jar 中的内容完全匹配,就像上面看到的一样(路径前面没有“/”)。

我不明白我应该如何使用 ClassLoader?

注意,我实际上使用 scala 2.10.0 和 java.lang 1.7 作为类加载器。

感谢您的帮助!

【问题讨论】:

  • 你在做的事情在我看来是正确的,我认为我们遗漏了一些东西。例如,“您无法加载 userSettings.jade”是什么意思?你有例外吗?哪一个?文件不可能在那里,但由于某种方式损坏而无法加载?

标签: java scala classpath classloader getresource


【解决方案1】:

检查 userSettings.jade 文件名中是否没有任何非打印字符,例如退格。有时文件名可能会因意外输入而弄乱。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    • 1970-01-01
    相关资源
    最近更新 更多