Accessing JAR resources

前端 未结 4 1506
太阳男子
太阳男子 2020-11-30 10:47

I have a jar file with resources (mainly configuration for caches, logging, etc) that I want to distribute.

I\'m having a problem with the relative path

相关标签:
4条回答
  • where the resource.xml found? If in the root of the source tree, try to prefix it with /.

    0 讨论(0)
  • 2020-11-30 11:17

    I usually store files and other resources and then retrieve them as URLs:

    URL url = MyClass.class.getResource("/design/someResource.png");
    

    Within a static context, or otherwise:

    URL url = getClass().getResource("/design/someResource.png");
    

    From an instance.

    The above snippets assume that design is a top level folder within the jar. In general, if the path begins with a "/" it assumes an absolute path, otherwise it's relative from the class location.

    0 讨论(0)
  • 2020-11-30 11:20

    Make sure that your resource folder is listed as a source folder in your project settings. Also, make sure that the resource folder is set to export when you build your jar.

    You can add a .zip extension to your jar file then open it up to ensure that your resources are included and at the expected location.

    I always use absolute paths like this:

    InputStream input = this.getClass().getResourceAsStream("/image.gif");
    

    When you use absolute paths, "/" is the root folder in the jar file, not the root folder of the host machine.

    0 讨论(0)
  • 2020-11-30 11:25

    I always have to puzzle through getResourceAsStream to make this work. If "resource.xml" is in org/pablo/opus, I think you want this:

    Name.class.getResourceAsStream("org.pablo.opus.resource.xml");
    
    0 讨论(0)
提交回复
热议问题