Java 如何确保始终获取项目根目录
我有以下项目结构: 有些情况下,我需要读取Java 如何确保始终获取项目根目录,java,groovy,filepath,Java,Groovy,Filepath,我有以下项目结构: 有些情况下,我需要读取Config.groovy文件。要获取文件路径,我说 String localDir = System.getProperty("user.dir") String configPath= localDir + File.separator + "config" + File.separator + "Config.groovy"; 但这里有个问题。如果我从main类内部调用它 D:\Programs\CheckFraudAlarms 如果我从ut
Config.groovy
文件。要获取文件路径,我说
String localDir = System.getProperty("user.dir")
String configPath= localDir + File.separator + "config" + File.separator + "Config.groovy";
但这里有个问题。如果我从main
类内部调用它
D:\Programs\CheckFraudAlarms
如果我从utils.UtilGroovies
类内部调用它,我得到
D:\Programs\CheckFraudAlarms\src
这将导致Config.groovy文件的路径无效。如何确保无论在何处调用
System.getProperty
方法,都始终获取项目根文件夹?一种方法是将配置目录的绝对路径设置为系统
属性的值,例如conf.dir
,然后,您需要在启动命令中使用“-Dconf.dir=c:\path\to\config\”
对其进行设置。您还可以使用user.dir
作为系统属性
另一种方法是将
config
目录添加到应用程序的classpath,以便能够从上下文ClassLoader
获取它,如下所示:
String configPath = new File(
Thread.currentThread().getContextClassLoader().getResource("Config.groovy").toURI()
).getAbsolutePath();
您是否尝试过getClass().getClassLoader().getResource(“/config/config.groovy”)?