在属性文件中使用变量时出现 IllegalArgumentException

IllegalArgumentException when variable used in properties file

我创建了一个使用 .properties 文件的 Java 应用程序。

最初我有以下 属性:

manager.url=https://1.2.3.4/manager-bucket1

随着应用程序和我的属性文件的增长,我发现我在 .properties 文件中复制了很多东西,因此为了便于维护,我做了以下操作:

manager.ip=1.2.3.4
manager.bucket=manager-bucket1
manager.url=https://${manager.ip}/${manager.bucket}

当我使用新属性执行我的应用程序时,我得到一个 IllegalArgumentException:

路径中索引 30 处的非法字符:https://1.2.3.4/manager-bucket1

java.lang.IllegalArgumentException: Illegal character in path at index 30: https://1.2.3.4/manager-bucket1
at java.net.URI.create(URI.java:852)
at org.apache.http.client.methods.HttpGet.<init>(HttpGet.java:69)
at com.service.http.Get.<init>(Get.java:24)
at com.getaccesslogs.AccessCheckUrlConnectionsTest.checkAccessManagerUrl(AccessCheckUrlConnectionsTest.java:145)
at com.getaccesslogs.AccessCheckUrlConnectionsTest.logAccessManagerConnectionTest(AccessCheckUrlConnectionsTest.java:216)
Caused by: java.net.URISyntaxException: Illegal character in path at index 30: https://1.2.3.4/manager-bucket1
at java.net.URI$Parser.fail(URI.java:2822)
at java.net.URI$Parser.checkChars(URI.java:2995)
at java.net.URI$Parser.parseHierarchical(URI.java:3079)
at java.net.URI$Parser.parse(URI.java:3027)
at java.net.URI.<init>(URI.java:588)
at java.net.URI.create(URI.java:850)

我看不到任何可能导致此问题的明显原因。是否与文本编码有关?如果是,我该如何解决?

正如 VGR 指出的那样,我的一行末尾有一个隐藏的 space 字符。我通过将文件内容粘贴到 Word 中并单击 "Show all non-printing characers" 按钮来识别它。一旦它被删除,我的应用程序 运行 没有错误。