2

我在使用 getResourceAsStream 方法时遇到问题 - 由于目录错误,它返回 null。问题是我不知道如何定义目录。

我的项目结构是这样的

Project
  #src
    #com.package
      #ExampleClass.java
  #dll
    #MyFile.dll

当我有

InputStream in = this.getClass().getResourceAsStream("../dll/" + "MyFile.dll");

它返回空值。有谁知道如何处理这个问题以及应该如何定义路径?

4

2 回答 2

3

如果在包中,this则需要上两层才能到达 CLASSPATH 的根目录:ExampleClasscom.package

this.getClass().getResourceAsStream("../../dll/" + "MyFile.dll");

假设/dll目录直接放在 CLASSPATH 的根目录中。或者干脆使用绝对路径:

this.getClass().getResourceAsStream("/dll/" + "MyFile.dll");

如果/dll/MyFile.dll不在您的 CLASSPATH 上(只需打开您的 JAR 文件并检查它是否存在),您应该使用文件系统机制来打开它。

于 2012-07-05T13:47:53.420 回答
0

它取决于 MyFile.dll 在类路径中的位置,而不是 MyFile.dll 在您的项目中的位置。请看一下在哪里放置文件以从类中读取

于 2012-07-05T13:50:22.543 回答