【问题标题】:InputStream from getResourceAsStream results in NULL来自 getResourceAsStream 的 InputStream 结果为 NULL
【发布时间】:2013-04-02 01:08:21
【问题描述】:
        InputStream input = Faculty.class.getClassLoader().getResourceAsStream("Resources\\Names.txt");
        DataInputStream in = new DataInputStream(input);
        BufferedReader br = new BufferedReader(new InputStreamReader(in));
        String strLine;
        while ((strLine = br.readLine()) != null && !strLine.equals("")) {
            keywords.add(strLine);
        }

上面的代码在 NetBeans 中工作。但是当我将代码打包到一个可执行的 Jar 中并从命令行运行它时,它给了我一个 NullPointerException 因为未初始化的input。所以我怀疑 Jar 无法读取打包在其中的资源文件。 Resources 文件夹直接位于我项目的源文件夹下。任何人都可以提示尝试什么吗?

【问题讨论】:

  • 你试过什么?此外,您没有在任何地方使用该输入流,看起来您在其他地方有一个 fstream
  • Names.txt 文件的完整路径是什么?
  • @Farlan 抱歉,打错了。
  • @user717630 它在我项目的源文件夹下。
  • 资源的路径在你的类路径中吗?例如:如果 Resources 在 ./somepath/Resources/ 下,则在您的类路径中添加 ./somepath/?

标签: java netbeans jar nullpointerexception inputstream


【解决方案1】:

你应该这样写:

getResourceAsStream("/Resources/Names.txt");

如果不加前缀'/',说明你的路径是基于你的类路径,而不是根路径

【讨论】:

    猜你喜欢
    • 2013-07-17
    • 2015-06-13
    • 2013-03-27
    • 2015-07-03
    • 2017-11-13
    • 2014-12-07
    • 2015-02-19
    • 1970-01-01
    相关资源
    最近更新 更多