我有以下问题。在我们的集成测试中,我们使用不同的配置,该配置将在测试之前使用以下代码从测试资源中加载:
URL resource = ClassLoader.getSystemResource("application.conf");
只要路径中没有特殊字符,这就可以正常工作。例如具有以下正确路径
D:/Dev/projects/#FLI/flinsta/fgraph/build/resources/test/application.conf
将导致 getSystemResource
给出的以下错误文件路径:
D:/Dev/projects/%23FLI/flinsta/fgraph/build/resources/test/application.conf
这会导致一个根本不存在的文件。我怎样才能确保不会发生这样的事情。重命名路径是一个选项。但是,我想找到解决方案而不是解决方法。
感谢您的帮助!
最佳答案
借助评论回答我自己的问题:
URL resource = ClassLoader.getSystemResource("application.conf");
String configPath = URLDecoder.decode(resource.getFile(), "UTF-8");
然后变量 configPath
包含正确的路径。
关于路径中带有特殊字符的Java ClassLoader getResource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32251251/