我想读取jar外的配置文件,该怎么办?
我试过classloader.getResourceAsStream("config.xml")
当我在 Intellij 中运行代码时成功了。现在我想将 jar 构建到一个文件夹中并将 config.xml
放入在同一文件夹下,而不是在 jar 内,但程序无法检测到 config.xml
.
有没有一种优雅的方式来阅读 config.xml
而不是使用File
在代码中使用相对路径,在 IDE 中调试/运行时不起作用?
最佳答案
是的,将其转换为系统属性,并将其提供给运行任何 Java 进程/应用程序的任何内容。
假设您有一个 config.xml
文件位于 /some/path/down/the/line/
内,那么您可以执行以下操作:java - -classpath ... -Dapp.config=/some/path/down/the/line/config.xml tld.domain.Application
.
那么您在 Java 代码中所要做的就是引用该名称/路径:final String configFile = System.getProperty("app.config");
,并使用任何众所周知的从那里读取它的例程。
基本上,您必须确保文件/路径/位置以某种方式提供给 Java 类路径。
关于java - 如何从jar外部读取资源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57481646/