无法在 IntelliJ 中获取资源文件的相对路径 - Java/Selenium
Unable to get relative path in IntelliJ for resource file - Java/Selenium
我正在努力获取资源文件夹中文件的相对路径。
我花了几个小时倾注并尝试在其他线程中尝试其他解决方案,但都失败了,我不知道是否由于确切的语法错误,但我真的很感激能提供一些帮助来准确地写什么。
附上截图
文件设置
我 运行 我的测试来自我的 class TestRunner,它转到 PropertiesUtil 让浏览器从 config.properties 文件中 运行 测试。
config.properties 文件位于资源文件夹中,但我无法使用相对路径访问配置文件。它绝对可以正常工作,但这意味着当其他人 运行 时它会失败。
如果我尝试其他路径,我会收到错误消息:
2019-03-06 21:21:16 INFO TestRunner - Before running
java.io.FileNotFoundException: config.properties (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
请帮忙!我在这上面停留的时间太长了。
按照建议尝试使用 ClassLoader,但这在 propertiesUtil 中不起作用,我也不太确定如何结合我所拥有的编写它(因为它抱怨 static/non-static)。在从 TestRunner 运行ning 尝试调试和理解时,它没有给我太多有用的信息。
ClassLoader
我也试过在别处看到的类似的东西。同样的问题:
non-static to static error
尝试这样的事情。
public static void readPropertiesFiles() {
ClassLoader classLoader = PropertiesUtil.class.getClassLoader();
String path = classLoader.getResource("config.properties").getPath();
System.out.println(path);
}
太棒了!!效果很好。供发现此问题的任何人参考 - 这是包含上述修复的代码截图!
Working code now implemented
我正在努力获取资源文件夹中文件的相对路径。 我花了几个小时倾注并尝试在其他线程中尝试其他解决方案,但都失败了,我不知道是否由于确切的语法错误,但我真的很感激能提供一些帮助来准确地写什么。 附上截图
文件设置
我 运行 我的测试来自我的 class TestRunner,它转到 PropertiesUtil 让浏览器从 config.properties 文件中 运行 测试。
config.properties 文件位于资源文件夹中,但我无法使用相对路径访问配置文件。它绝对可以正常工作,但这意味着当其他人 运行 时它会失败。
如果我尝试其他路径,我会收到错误消息:
2019-03-06 21:21:16 INFO TestRunner - Before running
java.io.FileNotFoundException: config.properties (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
请帮忙!我在这上面停留的时间太长了。
按照建议尝试使用 ClassLoader,但这在 propertiesUtil 中不起作用,我也不太确定如何结合我所拥有的编写它(因为它抱怨 static/non-static)。在从 TestRunner 运行ning 尝试调试和理解时,它没有给我太多有用的信息。 ClassLoader
我也试过在别处看到的类似的东西。同样的问题: non-static to static error
尝试这样的事情。
public static void readPropertiesFiles() {
ClassLoader classLoader = PropertiesUtil.class.getClassLoader();
String path = classLoader.getResource("config.properties").getPath();
System.out.println(path);
}
太棒了!!效果很好。供发现此问题的任何人参考 - 这是包含上述修复的代码截图!
Working code now implemented