解决方案:
需要将主机名称和本机ip通过【ip 本机名称】这样的格式配置在 /etc/hosts 这个文件中,这样对应的本机名称就会获取到相应的ip
格式如:
/etc/hosts
ip 本机名称
我们在开发中如果要获取本地机器的ip地址时,可以通过InetAddress.getLocalHost()发放来获取,但是这样可能碰到的一个运行时异常就是本地配置文件中相应的配置,就会产生UnknownHostException 的异常
UnknownHostException产生原因
本机名称不是一个ip地址
本机名称是一个ip地址,但不是本机对应的ip地址
本机名称是一个不完整的ip地址
不同情况的解决方案
首先我们通过命令行来查看一下本机的名称: [hostname]
通过本机名称来判断是上面的那种产生原因
对于主机名称不是ip地址的解决方案
主机名称如果不是本机的ip地址的话,需要将主机名称和本机ip通过【ip 本机名称】这样的格式配置在 /etc/hosts 这个文件中,这样对应的本机名称就会获取到相应的ip
格式如:
/etc/hosts
ip 本机名称
本机名称是一个ip,但不是本机的ip
修改本机名称为正确的本机ip
主机名称是一个不完整的ip
这样的情况在获取的过程中不会报UnknownHostException,但是会访问停滞,最终报Connection timed out的异常,这样的情况需要将本机名称修改为正确的本机ip对应的字符串
-在开发中如果用到了InetAddress.getLocalHost()这个方法,最好提前跑一个测试方法,查看一下是否可以获取到部署的主机的正确ip