java.net.UnknownHostException:服务器的主机名无效:local
我应该采取什么措施来解决这个错误:
java.net.UnknownHostException: Invalid hostname for server: local
我在Android模拟器中添加了新的虚拟主机名,但结果返回
java.net.UnknownHostException virtualhostname at java.net.InetAddress.lookUpHostByName(InetAddress.java:506)
当我在我的电脑上键入我的虚拟主机URL时,它会显示。 再次,当我在Emulator上运行并检查Logcat时,我无法读取或检查HTTP状态(如果200,202或错误代码号)。 它只是返回到UnknownHostException
真正意义上的例外是没有名称为“local”的已知服务器。 我的猜测是你正试图连接到你的本地计算机。 尝试使用主机名"localhost"
,或者使用127.0.0.1
/ ::1
(最后一个是IPv6)。
从javadocs :
抛出以表明无法确定主机的IP地址。
127.0.0.1
/ ::1
/ "localhost"
应该永远是环回接口,所以如果这不起作用,我会很惊讶。
如果networking上确实有一台名为“本地”的服务器,请检查您的DNS设置或将其添加到您的主机文件中。
我在我的Mac上遇到同样的问题。 我发现这个问题,当我从terminalping我的$HOSTNAME
,并返回ping: cannot resolve myHostName: Unknown host
。
解决:
- 在terminal上
echo $HOSTNAME
。 - 无论显示
myHostName
主机名(可以说myHostName
),尝试ping它:ping myHostName
。 如果它返回ping: cannot resolve myHostName: Unknown host
然后添加一个条目到您的/etc/hosts
文件。 -
对于编辑
/etc/hosts
文件并添加以下内容:127.0.0.1 myHostName
希望它有帮助。
java.net.UnknownHostException:主机未解决:
抛出以表明无法确定主机的IP地址。
当你连接到一个有效的WiFi,但路由器没有收到互联网时,也会引发这个exception。 它很容易重现这一点:
- 连接到有效的无线networking
- 当路由器插入时,现在从路由器上拔下电缆
你会观察这个错误!
你不能真正解决这个问题,你只能优雅地通知用户。 (类似 – “无法build立连接”)
这可能由于各种原因而发生
1)检查你是否连接了VPN,如果有,你可能会得到这个错误
“你的主机名localhostparsing为一个环回地址:127.0.0.1;改为使用10.xxx.1.193(在接口cscotun0上)”
2)检查你的$ HOSTNAME
3)尝试在命令行上ping $ HOSTNAME,如果它不起作用,请调整系统设置以使本地主机响应ping
您的主机名丢失。 JBoss在连接到服务器时使用这个环境variables($ HOSTNAME)。
[root@xyz ~]# echo $HOSTNAME xyz [root@xyz ~]# ping $HOSTNAME ping: unknown host xyz [root@xyz ~]# hostname -f hostname: Unknown host
有几十件事情可以造成这种情况。 请发表评论,如果你发现一个新的原因。
对于黑客,直到您可以在服务器上永久解决此问题,可以在/ etc / hosts文件的末尾添加一行:
127.0.0.1 xyz.xxx.xxx.edu xyz
这不是特定的问题,但这个问题出现了,当我谷歌search提及UnknownHostException
,修复程序没有发现其他地方,所以我想我会在这里添加一个答案。
连续收到的例外是:
java.net.UnknownHostException: google.com at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at java.net.Socket.connect(Socket.java:538) at java.net.Socket.<init>(Socket.java:434) at java.net.Socket.<init>(Socket.java:211) ...
不pipe我如何连接到任何有效的主机,打印到terminal上也无济于事。 一切都是正确的。
解决scheme
不要 为包含空格的主机string 调用 trim()
。 在编写代理服务器时,主机是通过使用split(":")
分号的HOST
头从HTTP头获得的。 这留下了空白,并导致UnknownHostException
作为主机与空白不是一个有效的主机。 在String host
上执行host = host.trim()
解决了不明确的问题。
尝试连接到您的本地computer.try与主机名“本地”,而不是或者:: / – 最后一个是ipv6
请尝试将SPARK_LOCAL_IP环境variables设置为要连接的IP地址(可以是本地主机,也就是您自己的IP地址)。 例如
$ export SPARK_LOCAL_IP=182.95.208.152
这样你就不需要改变现有的linux设置。 为我工作,希望也能帮助你。
如果您的/ etc / localhosts文件具有以下条目:添加主机名如下:
127.0.0.1 local host (add your hostname here) ::1 (add hostname here) (the last one is IPv6).
这应该可以解决问题。
你应该更换[]
了!
这个例子是[hostname]
,你可以用这样的东西replace所有这些:
jdbc:mysql://localhost:3306/openfire