gpt4 book ai didi

java - 来自属性文件 : Java 的字符串主机名

转载 作者:行者123 更新时间:2023-11-29 08:47:20 25 4
gpt4 key购买 nike

这听起来像是一个非常简单的问题,但我想不出解决这个问题的方法。

我有一个 config.properties 文件,其中包含两个关键值:一个 IP 地址和一个端口号。我阅读了这个配置文件以提取字符串格式的键值。但是,当我尝试使用这些值时,无法连接到从配置文件中检索到的 IP 地址。

原因是读取的值是字符串格式,我需要在使用它们之前将它们转换为正确的格式。我想要的是将配置文件中存储的值“192.168.1.40”转换为 String host 格式。我尝试使用 InetAddress 但这给出了一个错误。配置文件的内容是:

IP=192.168.1.40
PORT=9124

使用这些值的代码如下:

Properties prop = new Properties();
String propFileName = "...//testJedis//resources//config.properties";
prop.load(new FileInputStream(propFileName));//testJedis/resources/config.properties"));// configStream);

Jedis jedis=new Jedis(prop.getProperty("IP"),Integer.parseInt(prop.getProperty("PORT")));
//Jedis jedis = new Jedis("192.168.1.40",9124);

我得到的错误栈如下:

Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.UnknownHostException: "192.168.1.40"
at redis.clients.jedis.Connection.connect(Connection.java:150)
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:71)
at redis.clients.jedis.Connection.sendCommand(Connection.java:92)
at redis.clients.jedis.BinaryClient.ping(BinaryClient.java:84)
at redis.clients.jedis.BinaryJedis.ping(BinaryJedis.java:65)
at TestJedis.main(TestJedis.java:43)
Caused by: java.net.UnknownHostException: "192.168.1.40"
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at redis.clients.jedis.Connection.connect(Connection.java:144)
... 5 more

可以找到jedis类的文档here !

P.S.:如果我直接将主机地址作为字符串传递,它会正常工作(这意味着主机完全可达)。

最佳答案

java.net.UnknownHostException: "192.168.1.40"
^ ^

恕我直言 这个双引号不应该出现,因为 Exception需要 String作为未知的 hostName 的参数。唯一的原因Exception可能是您实际上在 hostName 中传递双引号.

应该是java.net.UnknownHostException: 192.168.12<--If host is unknown

来自评论

IP is returned as "192.168.1.40" (quotes included) when I print them on screen

这仅表示您的 String IP="\"192.168.1.40\""不是String IP="192.168.1.40"从配置文件中删除双引号。

我无法重现该问题,但您可以使用 replace

String ip=prop.getProperty("IP").replace("\"","")

关于java - 来自属性文件 : Java 的字符串主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24448887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com