如何定义文件的相对路径?

NeverSleeps:

我有一个涉及黄瓜和maven的项目,由Intellij IDEA负责。

我需要使用相对文件路径。现在我正在Mac OS上工作,但是该项目也将在Windows上使用。

  1. 如何确定从RunnerTest.java到Mac OS的application.properties文件的相对路径?
  2. 在Windows中定义相同的路径是否会有差异?

这是我的RunnerTest.Java类

public class RunnerTest {

    public static void main(String[] args) throws Throwable {
        System.setProperty("TagConfigFile", "../../config/application.properties");

        //...

        String sConfigFile = System.getProperty("TagConfigFile", "null");

        try (InputStream streamFromResources = Props.class.getClassLoader().getResourceAsStream(sConfigFile)) {
            /* work wiht  streamFromResources */
        } catch (IOException | NullPointerException ee) {
            throw new PropsRuntimeException("Failed to access properties file", ee);
        }
    }
}

这是我的项目结构的图像(为清楚起见,添加了突出显示):

在此处输入图片说明

我试图使用这种方式。但这没有帮助

 1. "../../config/application.properties"
 2. "src/resources/config/application.properties"
 3. "../../resources/config/application.properties"
NeverSleeps:

我不假装是正确的,但是它起作用了:

  1. 我在其中创建了文件夹resourcessrc -> main然后将文件夹移到了config那里。我在其中创建了文件夹resourcessrc -> test并将所有其他文件夹移到了那里。结果是这样的结构:
src
 |----main
 |      |
 |      |----java
 |      |----resources
 |      |        |----config
 |      |        |       |----application.properties
 |
 |----test
 |      |----resources
 |      |        |----features
 |      |        |----pipes
 |      |        |----testdata
 |      |        |----webdrivers
  1. 相反,System.setProperty("TagConfigFile", "../../config/application.properties");System.setProperty("TagConfigFile", "./config/application.properties");RunnerTest.java课堂上

如果有人提供更精美的工作解决方案,我将非常高兴

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章