在运行时jar的同一文件夹中读取Java文件

时间:2014-07-02 10:55:53

标签: java maven configuration

我有一个访问XML配置文件的Maven Java应用程序。此配置文件应放在应用程序jar的同一文件夹中,以便任何配置都可以轻松地跟随"申请。

我使用以下代码来获取jar的绝对路径

String path = Runner.class.getProtectionDomain().getCodeSource().getLocation().getPath();
String decodedPath = URLDecoder.decode(path, "UTF-8");

以调试模式运行它会返回以下路径

/C:/Users/user/git/project/project/target/classes/

因此jar从target/classes文件夹运行(在调试模式下),因此XML配置文件应放在该文件夹中。

问题在于,每当我重建项目时,target文件夹都会被覆盖并删除配置文件。

有没有办法解决这个只影响开发阶段的问题? 我正在考虑告诉Maven不要以某种方式删除配置文件,但我不知道如何。

提前谢谢

致以最诚挚的问候,

Giulio的

1 个答案:

答案 0 :(得分:0)

这可以使用maven开箱即用。只需将XML文件放在src / main / resources /中,在构建期间它将被复制到target / classes

mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=sub.optimal.example -DartifactId=superapp
cd superapp/
mkdir src/main/resources
touch src/main/resources/example.xml
mvn package
ls target/classes/*.xml

欢呼声