【发布时间】:2017-02-04 16:16:29
【问题描述】:
我的 Junit 测试套件配置为在 Windows 和 Linux 环境中执行。我开发了两种可能的代码来实现相同的目标。我真的不确定以下代码与操作系统无关的行为。我是java新手。请提出建议。
public static void main(String[] args) {
String directoryRootFromFile = null;
String directoryRootFromUserDir = null;
String propertiesPath = null;
directoryRootFromFile = new java.io.File(".").getAbsolutePath() + File.separatorChar + "data";
directoryRootFromUserDir = System.getProperty("user.dir") + File.separatorChar + "data";
propertiesPath = directoryRootFromFile + File.separatorChar + "abc.properties";
System.out.println(propertiesPath);
propertiesPath = directoryRootFromUserDir + File.separatorChar + "abc.properties";
System.out.println(propertiesPath);
}
1st Output : C:\workspace\test\.\data\abc.properties
2nd Output : C:\workspace\test\data\abc.properties
【问题讨论】:
-
你测试了吗?它可以在 Linux 和 Windows 上运行吗?问题是什么?
-
您应该将文件添加到类路径并使用 Class.getResource() 加载广告
-
@Jim - 我用 Windows 进行了测试并附上了结果。第一个输出不是有效的文件路径。
-
其实它是一个有效的路径。如果你想看到它被清理干净,请
Paths.get(directoryRootFromFile).normalize().toString()。