classLoader.getResource doesn't work in jar file

前端 未结 2 1837
眼角桃花
眼角桃花 2021-02-05 19:12
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL url = classLoader.getResource(\"com/x/y/z.cfg\");
File file = new File(url.getPath());


        
相关标签:
2条回答
  • 2021-02-05 20:02

    You can't create a File instance, because the only file you have is the JAR. That's why getResource() returns URL. You can get stream by using URL.openStream() method to read contents.

    0 讨论(0)
  • 2021-02-05 20:08

    When file is bundled inside the jar then it become byte stream instead of a normal File object.

    Try

    InputStream stram=getClass().getClassLoader().getResourceAsStream(relativePath);
    

    More Tutorial...

    Read similar post here and here

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