为什么这个classpath资源为null?

时间:2011-06-17 12:46:12

标签: java maven

我有一个像这样结构的Maven项目:

  • 的src /主/爪哇/测试/ App.java
  • 的src /主/资源/配置/ message.txt

在App.java中,我有这一行:

InputStream is = Thread.currentThread()
    .getContextClassLoader()
    .getResourceAsStream("/config/message.txt");

我已经尝试了获取可在Stackoverflow和Google上找到的资源的每种变体,但在运行mvn exec:java -Dexec.mainClass=test.App时似乎总是返回null。我在这里缺少什么?

3 个答案:

答案 0 :(得分:1)

尝试:

InputStream is = test.App.class.getResourceAsStream("/config/message.txt");

或简单地说:

InputStream is = getClass().getResourceAsStream("/config/message.txt");

答案 1 :(得分:0)

你可以试试这个:

InputStream is = this.getClass().getResourceAsStream("/config/message.txt");

答案 2 :(得分:0)

我的赌注:

InputStream is = App.class.
    getResourceAsStream("../../resources/config/message.txt");

我不明白你想用currentThread()来做什么。