zoukankan      html  css  js  c++  java
  • 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
     在CODE上查看代码片派生到我的代码片

        java.net.UnknownHostException: yangxiaomindeMacBook-Pro.local: yangxiaomindeMacBook-Pro.local: nodename nor servname provided, or not known  
        at java.net.InetAddress.getLocalHost(InetAddress.java:1473)  
        at org.eclipse.rse.core.RSECorePlugin.getLocalMachineName(RSECorePlugin.java:265)  
        at org.eclipse.rse.core.RSEPreferencesManager.getDefaultPrivateSystemProfileName(RSEPreferencesManager.java:358)  
        at org.eclipse.rse.core.RSEPreferencesManager.initDefaults(RSEPreferencesManager.java:337)  
        at org.eclipse.rse.internal.core.RSEPreferenceInitializer.initializeDefaultPreferences(RSEPreferenceInitializer.java:23)  
        at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper$1.run(PreferenceServiceRegistryHelper.java:300)  
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)  
        ....  
        ....  
        ....  
        Caused by: java.net.UnknownHostException: yangxiaomindeMacBook-Pro.local: nodename nor servname provided, or not known  
        at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)  
        at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:901)  
        at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1293)  
        at java.net.InetAddress.getLocalHost(InetAddress.java:1469)  
        ... 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
     在CODE上查看代码片派生到我的代码片

        InetAddress.getLocalHost().getCanonicalHostName();   

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

  • 相关阅读:
    奇数阶魔方问题
    《DSP using MATLAB》示例9.3
    《DSP using MATLAB》示例9.2
    《DSP using MATLAB》示例9.1
    找个目标很重要
    《DSP using MATLAB》示例Example 8.30
    《DSP using MATLAB》示例Example 8.29
    《DSP using MATLAB》示例Example 8.28
    《DSP using MATLAB》示例Example 8.27
    《DSP using MATLAB》示例Example 8.26
  • 原文地址:https://www.cnblogs.com/fenglan/p/6651396.html
Copyright © 2011-2022 走看看