路径中带有特殊字符的Java ClassLoader getResource

标签 java

我有以下问题。在我们的集成测试中,我们使用不同的配置,该配置将在测试之前使用以下代码从测试资源中加载:

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/

相关文章:

java - Jruby 尝试加载本地 ruby​​ gem,而不是打包的 gem

java - XmlGregorianCalender 中的默认毫秒值是多少?

java - 蓝牙功能(通过 J2ME)

java - 如何使用 Selenium 向下滚动?

java - 建立 SSL 主机连接时无法使用签名证书验证 Cacerts

java - 艾略特波浪计算器,图表模式识别

java - 给定一个整数数组和一个总和,任务是查找给定数组是否存在总和等于给定总和的子集

java - Java 中嵌套类中的静态成员

java - 程序退出时MySQL连接会自动关闭吗?

java - JPA Criteria 从一些表中选择