referencing data files in jars

后端 未结 3 1443
深忆病人
深忆病人 2021-01-28 18:52

My Java program references a lot of data files. I put them in a top level directory called data/, along with src/ and bin/. In Eclipse, references to data/ and ../data/ both s

相关标签:
3条回答
  • 2021-01-28 19:07

    If your resources are in a jar file, consider using this method to read them:

    class Class {
        InputStream getResourceAsStream(String name)
    }
    

    This looks for the resource relative to a class (which may be in a jar), rather than relative to the working directory.

    0 讨论(0)
  • 2021-01-28 19:22

    I'd recommend you access the files in a classpath-relative way, whether in Eclipse or in a compiled JAR.

    There are a few ways you might go about it, but a basic JDK-only approach would be to use Class's getResourceAsStream() method, giving you access to an InputStream object that you can read in.

    0 讨论(0)
  • 2021-01-28 19:25

    Thanks for pointing me down this path, guys. I ended up doing a really hacked up workaround because I'm not very good with IO yet. I used getClass() to construct a URL:

    http://forums.sun.com/thread.jspa?threadID=5258488

    Then made a new File object from this string (new File(file)):

    String file = url.toString().replaceFirst("file:", "");

    This allowed me to keep the same code that referenced the file objects.

    0 讨论(0)
提交回复
热议问题