当项目是.jar或在IDE中时,我如何动态地访问srcmainresources中的文件?

问题描述 投票:0回答:1

我有一个项目,使用srcmainresources*input*中的文件,并在srcmainresources*output*中生成文件。

我经常使用

System.getProperty("user.dir") + "/src/main/resources"

我的问题是它不是动态的。当我使用我的IDE时,它工作得很好,但是当我以.jar文件的形式构建我的项目时,我最终不得不将srcmainresources添加到jar所在的根目录下......这可能很糟糕。

我试过使用以下方法,结果返回空指针异常

this.getClass().getResource("input").getPath().toString()

谁能给我提供一个动态的方法来访问我需要的这些位于srcmainresources里面的目录?以一种动态的方式从IDE和.jar中工作。?

java maven jar
1个回答
0
投票

你可以使用资源文件夹访问文件。

this.getClass().getResourceAsStream("/NLP/models/en-lemmatizer.bin").toString();

NLP是资源中的一个文件夹,而资源中又有一个models文件夹,里面有bin文件。

据我所知,你不能在jar里面生成文件或创建新文件。

© www.soinside.com 2019 - 2024. All rights reserved.