繁体   English   中英

用Java读取运行时jar相同文件夹中的文件

[英]Read a file in Java in the same folder of the runtime jar

我有一个访问XML配置文件的Maven Java应用程序。 此配置文件应放在应用程序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不要以某种方式删除配置文件,但我不知道如何。

先感谢您

最好的祝福,

朱利奥

可以使用开箱即用的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

干杯

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM