Java Web项目在Mac系统上启动时提示nodename nor servname provided的解决办法

今天在Mac系统上启动Java Web项目的时候,提示了java.net.UnknownHostException: yangxiaomindeMacBook-Pro.local nodename nor servname provided类似的错误,然而同样的项目在windows的环境下是可以正常启动运行的。然后在网上找到了解决办法,虽然是英文的,但是根据说的做法,确实可以解决这个问题。现在将这个问题的解决办法分享给大家。

首先看下异常的提示信息:

[java]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. java.net.UnknownHostException: yangxiaomindeMacBook-Pro.localyangxiaomindeMacBook-Pro.local: nodename nor servname provided, or not known  
  2. at java.net.InetAddress.getLocalHost(InetAddress.java:1473)  
  3. at org.eclipse.rse.core.RSECorePlugin.getLocalMachineName(RSECorePlugin.java:265)  
  4. at org.eclipse.rse.core.RSEPreferencesManager.getDefaultPrivateSystemProfileName(RSEPreferencesManager.java:358)  
  5. at org.eclipse.rse.core.RSEPreferencesManager.initDefaults(RSEPreferencesManager.java:337)  
  6. at org.eclipse.rse.internal.core.RSEPreferenceInitializer.initializeDefaultPreferences(RSEPreferenceInitializer.java:23)  
  7. at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper$1.run(PreferenceServiceRegistryHelper.java:300)  
  8. at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)  
  9. ....  
  10. ....  
  11. ....  
  12. Caused by: java.net.UnknownHostException: yangxiaomindeMacBook-Pro.local: nodename nor servname provided, or not known  
  13. at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)  
  14. at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:901)  
  15. at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1293)  
  16. at java.net.InetAddress.getLocalHost(InetAddress.java:1469)  
  17. ... 28 more  

关于异常信息中的 yangxiaomindeMacBook-Pro.local这个东西,其实是我们的Mac系统的主机名称,有些代码里面可能需要根据主机名称来去本地的DNS里找对应的IP地址,由于本地的DNS配置中没有指定主机名这个IP地址是什么,也就会提示这个错误了。

解决办法非常的简单:

1、打开Mac系统上的终端,查看查看当前主机DNS的配置,输入命令cat /private/etc/hosts,如图所示:



2、,然后编辑主机配置,增加主机名的映射,输入命令sudo vi /private/etc/hosts,进入VI编辑器,增加如下的映射

127.0.0.1  yangxiaomindeMacBook-Pro.local

退出保存即可。

3、最后,在终端中输入刷新的命令dscacheutil -flushcache

经过了三个步骤之后,启动Java Web项目的时候,就不会出现如下的错误信息。

之所以会出现这个错误,网上说是项目中有地方调用如下的代码:

[java]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. InetAddress.getLocalHost().getCanonicalHostName();   

说是这个方法会返回FQDN (Fully Qualified Domain Name),如果没有配置主机名,那么调用了这段代码会抛出异常信息,而这个方法依赖于底层的操作系统,Mac系统的配置和Windows有些不同!

参考资料:

资料1:http://crunchify.com/getting-java-net-unknownhostexception-nodename-nor-servname-provided-or-not-known-error-on-mac-os-x-update-your-privateetchosts-file/


转:http://blog.csdn.net/longyuhome/article/details/50674442

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值